From 6908539952b758b9e555c2f76beffdc36675734a Mon Sep 17 00:00:00 2001
From: Jason Parker <jparker@digium.com>
Date: Mon, 31 Jan 2011 23:08:38 +0000
Subject: [PATCH] Merged revisions 305254 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r305254 | qwell | 2011-01-31 17:07:00 -0600 (Mon, 31 Jan 2011) | 24 lines

  Merged revisions 305253 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2

  ................
    r305253 | qwell | 2011-01-31 16:59:34 -0600 (Mon, 31 Jan 2011) | 17 lines

    Merged revisions 305252 via svnmerge from
    https://origsvn.digium.com/svn/asterisk/branches/1.4

    ........
      r305252 | qwell | 2011-01-31 16:56:54 -0600 (Mon, 31 Jan 2011) | 10 lines

      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)
    ........
  ................
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@305255 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_dial.c     | 2 +-
 channels/chan_sip.c | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/apps/app_dial.c b/apps/app_dial.c
index a1522a81a0..581a881701 100644
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -1944,7 +1944,7 @@ static int dial_exec_full(struct ast_channel *chan, const char *data, struct ast
 		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;
 		}
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index d0c0fffa31..a33a0ddd1c 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -25347,6 +25347,12 @@ static struct ast_channel *sip_request_call(const char *type, format_t format, c
 	}
 	ast_debug(1, "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, NULL))) {
 		ast_log(LOG_ERROR, "Unable to build sip pvt data for '%s' (Out of memory or socket error)\n", dest);
 		*cause = AST_CAUSE_SWITCH_CONGESTION;
-- 
GitLab