[OpenSIPS-Devel] [OpenSIPS/opensips] fd6c82: mid_registrar: Fix mem corruption on SIP retransmi...

Liviu Chircu liviu at opensips.org
Thu Aug 31 10:11:51 EDT 2017


  Branch: refs/heads/2.3
  Home:   https://github.com/OpenSIPS/opensips
  Commit: fd6c82a4873d3b6b54849c54a9e4ed88ea07b034
      https://github.com/OpenSIPS/opensips/commit/fd6c82a4873d3b6b54849c54a9e4ed88ea07b034
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2017-08-31 (Thu, 31 Aug 2017)

  Changed paths:
    M modules/mid_registrar/save.c

  Log Message:
  -----------
  mid_registrar: Fix mem corruption on SIP retransmissions

The TMCB_RESPONSE_IN function gets called once per each retransmission,
and we want to avoid this in the mid_registrar code. Since the callbacks
themselves are mutually exclusive, we can get away with zeroizing our own
parameter after the first run.

A better way of fixing this would be to extend the tm callback API to
include SIP retransmission preferences.

(cherry picked from commit f522b0ef089e12375b6dc184f5643c11312d1ebc)


  Commit: ce40839b88e755fbb92307966ed07f2e85c2d5d3
      https://github.com/OpenSIPS/opensips/commit/ce40839b88e755fbb92307966ed07f2e85c2d5d3
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2017-08-31 (Thu, 31 Aug 2017)

  Changed paths:
    M modules/mid_registrar/mid_registrar.c
    M modules/mid_registrar/mid_registrar.h
    M modules/mid_registrar/save.c

  Log Message:
  -----------
  mid_registrar: Fix a tm callback race condition

Commit f522b0ef089 is incomplete, since the tm's TMCB_RESPONSE_IN callbacks
are actually not mutually exclusive. We fix this by protecting the
tm parameter read/overwriting with an SHM'ized rw lock.

Reported by Chad Attermann <attermann at gmail.com>

(cherry picked from commit 496e2dcc2745829cc0895bca09400267c23ad7f2)


  Commit: cd5be9342793aa0a00c599677b84e7c62810077b
      https://github.com/OpenSIPS/opensips/commit/cd5be9342793aa0a00c599677b84e7c62810077b
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2017-08-31 (Thu, 31 Aug 2017)

  Changed paths:
    M modules/mid_registrar/mid_registrar.c
    M modules/mid_registrar/save.c

  Log Message:
  -----------
  mid_registrar: Avoid some memory leaks on parsing errors

Also improve mri_free(): avoid redundant checks on non-NULL fields.

Suggested by Chad Attermann <attermann at gmail.com>

(cherry picked from commit 4b9f34d6b1a0fa59c495cc8eec695cc49772c222)


  Commit: 2650e97ddd112ba5ab2cb2125f8c2282a9c74a51
      https://github.com/OpenSIPS/opensips/commit/2650e97ddd112ba5ab2cb2125f8c2282a9c74a51
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2017-08-31 (Thu, 31 Aug 2017)

  Changed paths:
    M modules/mid_registrar/save.c

  Log Message:
  -----------
  mid_registrar: Fix commit 496e2dcc

Suggested by Chad Attermann <attermann at gmail.com>

Fixes #1178
Fixes #1187
Fixes #1184

(cherry picked from commit 396dca37ccced8b758c830c536b5385be98feb3a)


Compare: https://github.com/OpenSIPS/opensips/compare/2778a511646d...2650e97ddd11


More information about the Devel mailing list