diff options
author | Damien Wedhorn <voip@facts.com.au> | 2011-10-09 22:21:42 +0000 |
---|---|---|
committer | Damien Wedhorn <voip@facts.com.au> | 2011-10-09 22:21:42 +0000 |
commit | 0ac40dc255efad058f33413058d8db96eefc3f6c (patch) | |
tree | 6e0d3b69c0482ae9e06f9d9d1a316265c65e197c | |
parent | b90964eda5663962da3def633c1fcd60a996bb9c (diff) |
Merged revisions 340031 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/10
........
r340031 | wedhorn | 2011-10-10 09:18:27 +1100 (Mon, 10 Oct 2011) | 8 lines
Return -1 to skinny_session if register rejected.
If device registration is rejected, return -1 so that the session is
destroyed immediately. Previously, a segfault would occur on a
graceful shutdown if a register is rejected and the skinny_session
has not yet timed out.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@340032 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r-- | channels/chan_skinny.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index bc2d015ac..ec4d7b0f3 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -6607,6 +6607,8 @@ static int handle_message(struct skinny_req *req, struct skinnysession *s) transmit_capabilitiesreq(s->device); } else { transmit_registerrej(s); + ast_free(req); + return -1; } case IP_PORT_MESSAGE: res = handle_ip_port_message(req, s); @@ -6926,6 +6928,7 @@ static void *skinny_session(void *data) res = handle_message(req, s); if (res < 0) { destroy_session(s); + ast_verb(3, "Ending Skinny session from %s\n", ast_inet_ntoa(s->sin.sin_addr)); return NULL; } } |