From: Mark Michelson Date: Fri, 22 Aug 2008 20:20:58 +0000 (+0000) Subject: The -1 return value from incomplete or improper X-Git-Tag: 1.6.2.0-beta1~1372 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=261d1eeb130cd239c4ad5edc306cfaad1a7a03c1;p=thirdparty%2Fasterisk.git The -1 return value from incomplete or improper headers for the SipNotify manager command was causing the current manager session to become disconnected. Change the return value to 0 for these cases. Also change a test for a NULL pointer to be ast_strlen_zero instead. (closes issue #13351) Reported by: Laureano Patches: sipnotify_action_fix.patch uploaded by Laureano (license 265) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@139563 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 48360ad947..3bec6f8708 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -9470,9 +9470,9 @@ static int manager_sipnotify(struct mansession *s, const struct message *m) struct ast_variable *vars = astman_get_variables(m); struct sip_pvt *p; - if (!channame) { + if (ast_strlen_zero(channame)) { astman_send_error(s, m, "SIPNotify requires a channel name"); - return -1; + return 0; } if (!strncasecmp(channame, "sip/", 4)) { @@ -9481,7 +9481,7 @@ static int manager_sipnotify(struct mansession *s, const struct message *m) if (!(p = sip_alloc(NULL, NULL, 0, SIP_NOTIFY))) { astman_send_error(s, m, "Unable to build sip pvt data for notify (memory/socket error)"); - return -1; + return 0; } if (create_addr(p, channame, NULL, 0)) { @@ -9490,7 +9490,7 @@ static int manager_sipnotify(struct mansession *s, const struct message *m) dialog_unref(p, "unref dialog inside for loop" ); /* sip_destroy(p); */ astman_send_error(s, m, "Could not create address"); - return -1; + return 0; } /* Notify is outgoing call */