channels/chan_sip: Fix registration leak during reload
authorMatthew Jordan <mjordan@digium.com>
Wed, 21 Jan 2015 13:36:52 +0000 (13:36 +0000)
committerMatthew Jordan <mjordan@digium.com>
Wed, 21 Jan 2015 13:36:52 +0000 (13:36 +0000)
commit5835bf7a7f2ba2b374aee6807307a6c3c73676f2
tree21ca0ddb583c41ffefbdd7e550b707b776630c44
parent958a41a884e350b7e01b8805e230d4d20e3a4873
channels/chan_sip: Fix registration leak during reload

When the SIP registrations were migrated to using ao2 in what was then trunk,
the explicit destruction of the registrations on module reload was removed and
not replaced with an ao2 equivalent. Debugging done by Stefan Engström, the
issue reporter, on ASTERISK-24673 confirmed that the reference in the
registry_list container was being leaked.

Since the purpose of cleanup_all_regs is to prep a registration for
destruction, this function now calls an ao2_callback function callback with the
OBJ_MULTIPLE | OBJ_NODATA | OBJ_UNLINK flags used to remove the registrations.
This cleans up each registration, and also removes it from the registration
container registry_list.

Review: https://reviewboard.asterisk.org/r/4355/

ASTERISK-24640 #close
Reported by: Max Man

ASTERISK-24673 #close
Reported by: Stefan Engström
Tested by: Stefan Engström
........

Merged revisions 430864 from http://svn.asterisk.org/svn/asterisk/branches/13

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@430866 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_sip.c