[asterisk-commits] qwell: branch 1.4 r305252 - in /branches/1.4: apps/ channels/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Jan 31 16:57:01 CST 2011


Author: qwell
Date: Mon Jan 31 16:56:54 2011
New Revision: 305252

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=305252
Log:
Prevent a crash when dialing a technology with no destination (ex: Dial(SIP/))

chan_iax2 and other channel drivers already had code to prevent this.  The
attempt that app_dial was making to prevent it was not correct, so I fixed that.

(closes issue #18371)
Reported by: gbour
Patches: 
      18371.patch uploaded by gbour (license 1162)

Modified:
    branches/1.4/apps/app_dial.c
    branches/1.4/channels/chan_sip.c

Modified: branches/1.4/apps/app_dial.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/apps/app_dial.c?view=diff&rev=305252&r1=305251&r2=305252
==============================================================================
--- branches/1.4/apps/app_dial.c (original)
+++ branches/1.4/apps/app_dial.c Mon Jan 31 16:56:54 2011
@@ -1224,7 +1224,7 @@
 		struct ast_dialed_interface *di;
 		AST_LIST_HEAD(, ast_dialed_interface) *dialed_interfaces;
 		num_dialed++;
-		if (!number) {
+		if (ast_strlen_zero(number)) {
 			ast_log(LOG_WARNING, "Dial argument takes format (technology/[device:]number1)\n");
 			goto out;
 		}

Modified: branches/1.4/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/channels/chan_sip.c?view=diff&rev=305252&r1=305251&r2=305252
==============================================================================
--- branches/1.4/channels/chan_sip.c (original)
+++ branches/1.4/channels/chan_sip.c Mon Jan 31 16:56:54 2011
@@ -18013,6 +18013,12 @@
 	}
 	if (option_debug)
 		ast_log(LOG_DEBUG, "Asked to create a SIP channel with formats: %s\n", ast_getformatname_multiple(tmp, sizeof(tmp), oldformat));
+
+	if (ast_strlen_zero(dest)) {
+		ast_log(LOG_ERROR, "Unable to create channel with empty destination.\n");
+		*cause = AST_CAUSE_CHANNEL_UNACCEPTABLE;
+		return NULL;
+	}
 
 	if (!(p = sip_alloc(NULL, NULL, 0, SIP_INVITE))) {
 		ast_log(LOG_ERROR, "Unable to build sip pvt data for '%s' (Out of memory or socket error)\n", (char *)data);




More information about the asterisk-commits mailing list