[OpenSIPS-Devel] [OpenSIPS/opensips] 848bb1: b2b_logic: don't crash when searching inexistent t...

Vlad Pătrașcu noreply at github.com
Tue Jul 4 14:40:15 UTC 2023


  Branch: refs/heads/master
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 848bb1c017ee7af2ff2db4058f7d1b1965ed4964
      https://github.com/OpenSIPS/opensips/commit/848bb1c017ee7af2ff2db4058f7d1b1965ed4964
  Author: Vlad Patrascu <vladp at opensips.org>
  Date:   2023-07-04 (Tue, 04 Jul 2023)

  Changed paths:
    M modules/b2b_logic/b2b_logic_ctx.c

  Log Message:
  -----------
  b2b_logic: don't crash when searching inexistent tuple by key

Searching the current tuple by key for accessing the logic context
should not cause a crash. As the hash is not locked or the structure
ref counted, there is a distinct possibility that the tuple cannot
be found anymore.

Related to #3117

(cherry picked from commit d05d408b0bf2346769d580d04b413f7d4a277e13)


  Commit: 98919c97617b383442d717b0fd4fd208d242ec2b
      https://github.com/OpenSIPS/opensips/commit/98919c97617b383442d717b0fd4fd208d242ec2b
  Author: Vlad Patrascu <vladp at opensips.org>
  Date:   2023-07-04 (Tue, 04 Jul 2023)

  Changed paths:
    M modules/b2b_logic/b2b_logic.c
    M modules/b2b_logic/b2b_logic_ctx.c
    M modules/b2b_logic/records.c

  Log Message:
  -----------
  b2b_logic: fix some locking issues

Properly access the b2b logic context of the current tuple under lock.
Also, protect the access to the tuple when using the b2bl_get_entity_info()
API function.

Related to #3117

(cherry picked from commit ebf40c91f9d62f367cddd722f05a1b53b6d30b6a)


  Commit: 5c51a8ea36aaff6ea86da6ca36d67a26a73677aa
      https://github.com/OpenSIPS/opensips/commit/5c51a8ea36aaff6ea86da6ca36d67a26a73677aa
  Author: Vlad Patrascu <vladp at opensips.org>
  Date:   2023-07-04 (Tue, 04 Jul 2023)

  Changed paths:
    M modules/b2b_logic/bridging.c
    M modules/b2b_logic/logic.c

  Log Message:
  -----------
  b2b_logic: properly reset the current tuple in all cases

The global variable used to identify the current tuple in the local_route was
not properly reset in all cases (when retrying a birdge action for example).
This could lead to a failure to identify the current tuple when acessing
the $b2b_logic variables, the b2b logic context etc., even when we're
not in the context of a local_route.

(cherry picked from commit 92772e69f36dcc70b2418374d83bf3274b13f104)


Compare: https://github.com/OpenSIPS/opensips/compare/03788691a145...5c51a8ea36aa



More information about the Devel mailing list