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

Liviu Chircu noreply at github.com
Mon Sep 9 06:48:40 EDT 2019


  Branch: refs/heads/2.4
  Home:   https://github.com/OpenSIPS/opensips
  Commit: eb625f24e3ec86652cd7335e66251c1caafadfe8
      https://github.com/OpenSIPS/opensips/commit/eb625f24e3ec86652cd7335e66251c1caafadfe8
  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: 6094710be0605c209c07c2f1d70d85349601c3a4
      https://github.com/OpenSIPS/opensips/commit/6094710be0605c209c07c2f1d70d85349601c3a4
  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/4b2b20be054a...6094710be060



More information about the Devel mailing list