mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-30 02:26:23 +00:00
Merged revisions 281430 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ........ r281430 | dvossel | 2010-08-09 15:46:50 -0500 (Mon, 09 Aug 2010) | 13 lines fixes SIP peers memory leak We zeroed out the peer's addr before it was removed from the peers_by_ip container. This made it impossible to be removed from the container as the addr is the key used by the container to find the peer. (closes issue #17774) Reported by: kkm Patches: 017774-sip-peer-leak-1.6.2.10.diff uploaded by kkm (license 888) 017774-sip-peer-leak-1.8.diff uploaded by kkm (license 888) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@281432 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -12652,7 +12652,6 @@ static int expire_register(const void *data)
|
||||
|
||||
peer->expire = -1;
|
||||
peer->portinuri = 0;
|
||||
memset(&peer->addr, 0, sizeof(peer->addr));
|
||||
|
||||
destroy_association(peer); /* remove registration data from storage */
|
||||
set_socket_transport(&peer->socket, peer->default_outbound_transport);
|
||||
@@ -12681,6 +12680,10 @@ static int expire_register(const void *data)
|
||||
}
|
||||
}
|
||||
|
||||
/* Only clear the addr after we check for destruction. The addr must remain
|
||||
* in order to unlink from the peers_by_ip container correctly */
|
||||
memset(&peer->addr, 0, sizeof(peer->addr));
|
||||
|
||||
unref_peer(peer, "removing peer ref for expire_register");
|
||||
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user