aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-05-01 23:17:12 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-05-01 23:17:12 +0000
commitae85b9562e1179f31936ffa599a8217d43b7ca1a (patch)
treeaf05a2f5040ed9dd58720ed414487fa10bafe20f /channels
parentf53c8a8efdf277e3a14b342c760eee75a7e99ceb (diff)
ensure object reference is removed after unlinking from container
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5545 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rwxr-xr-xchannels/chan_sip.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 809cc15cf..84c6b0b44 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4717,8 +4717,10 @@ static int expire_register(void *data)
register_peer_exten(peer, 0);
peer->expire = -1;
ast_device_state_changed("SIP/%s", peer->name);
- if (ast_test_flag(peer, SIP_SELFDESTRUCT) || ast_test_flag((&peer->flags_page2), SIP_PAGE2_RTAUTOCLEAR))
- ASTOBJ_CONTAINER_UNLINK(&peerl, peer);
+ if (ast_test_flag(peer, SIP_SELFDESTRUCT) || ast_test_flag((&peer->flags_page2), SIP_PAGE2_RTAUTOCLEAR)) {
+ peer = ASTOBJ_CONTAINER_UNLINK(&peerl, peer);
+ ASTOBJ_UNREF(peer, sip_destroy_peer);
+ }
return 0;
}