[OpenSIPS-Devel] [OpenSIPS/opensips] 9d52f6: Fix #1804 - mid_registrar_save() should save new c...

Liviu Chircu noreply at github.com
Mon Sep 9 06:47:24 EDT 2019

  Branch: refs/heads/3.0
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 9d52f6ff8cb61162af4bb48852e3780c71e569ae
  Author: Aron Podrigal <aronp at guaranteedplus.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M modules/usrloc/urecord.c

  Log Message:
  Fix #1804 - mid_registrar_save() should save new contact from register following an unregister.

When using `sql_mode` is set to `SQL_WRITE_BACK` and  `rr_persist` is `RRP_LOAD_FROM_SQL` contacts are not
immediately deleted from memory, contacts are marked `expires = UL_EXPIRED_TIME`. So when a `REGISTER` request
is received following an UNREGISTER, do not return the previous contact marked for deletion.

Returning the previous contact record, could have potentially lead to a crash, if opensips would free the contact
record while mid_registrar would retreive that using `get_ucontact()`.

(cherry picked from commit 98636d41de9ee631e838df348c9ea2a0735cd1c2)

  Commit: 9ab24947bf5d7e90d3e5adf6629cd5542f8cabb9
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M modules/mid_registrar/save.c

  Log Message:
  mid_registrar: Fix unsafe aor->contacts access

In modes 0 and 1, the aor->contacts list was accessed in an unsafe
manner, as the AoR lock would be relinquished too early.  This could
lead to a crash in rare cases.

(cherry picked from commit 66f99833fbddd7c4ca12b7616356a59647e8b592)

Compare: https://github.com/OpenSIPS/opensips/compare/cba3c0ad0aef...9ab24947bf5d

More information about the Devel mailing list