[OpenSIPS-Devel] [OpenSIPS/opensips] e3ca95: rr: Fix ordering issues with add_rr_param() and cr...

Liviu Chircu noreply at github.com
Thu Jun 25 19:05:57 EST 2020


  Branch: refs/heads/2.4
  Home:   https://github.com/OpenSIPS/opensips
  Commit: e3ca95ecd0b3f33b7f42f3a7eda4a6e686cb241d
      https://github.com/OpenSIPS/opensips/commit/e3ca95ecd0b3f33b7f42f3a7eda4a6e686cb241d
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M modules/rr/record.c

  Log Message:
  -----------
  rr: Fix ordering issues with add_rr_param() and create_dialog()

Commits bd1719dcf and c263182ee4d introduced regressions for
record_route() and record_route_preset(), respectively, which caused
add_rr_param() to not work anymore in the following sequence of function
calls:

create_dialog() with a "dlg_match_mode" != DID_NONE
record_route() or record_route_preset()
add_rr_param() # would not do anything, simply acting as a NOP

The reason is that the "fake" lump chain which was meant to hold
all add_rr_param() operations prior to an eventual record_route() call
would no longer be masked after the record_route() and would continue to
accumulate data from subsequent add_rr_param() calls.  Since it was
meant to be a "fake" chain from the beginning (maybe the user doesn't
call record_route() at all!), the data would simply be lost.

Many thanks to John Quick for the accurate report and instructions on
how to reproduce the issue!





More information about the Devel mailing list