[svn-commits] tilghman: branch 1.4 r61681 - in /branches/1.4: ./ funcs/

svn-commits at lists.digium.com svn-commits at lists.digium.com
Wed Apr 18 19:45:06 MST 2007


Author: tilghman
Date: Wed Apr 18 21:45:05 2007
New Revision: 61681

URL: http://svn.digium.com/view/asterisk?view=rev&rev=61681
Log:
Merged revisions 61680 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r61680 | tilghman | 2007-04-18 21:30:18 -0500 (Wed, 18 Apr 2007) | 5 lines

Bug 9557 - Specifying the GetVar AMI action without a Channel parameter can
cause Asterisk to crash.  The reason this needs to be fixed in the functions
instead of in AMI is because Channel can legitimately be NULL, such as when
retrieving global variables.

........

Modified:
    branches/1.4/   (props changed)
    branches/1.4/funcs/func_callerid.c
    branches/1.4/funcs/func_cdr.c
    branches/1.4/funcs/func_groupcount.c
    branches/1.4/funcs/func_language.c
    branches/1.4/funcs/func_moh.c
    branches/1.4/funcs/func_timeout.c

Propchange: branches/1.4/
------------------------------------------------------------------------------
Binary property 'branch-1.2-merged' - no diff available.

Modified: branches/1.4/funcs/func_callerid.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/funcs/func_callerid.c?view=diff&rev=61681&r1=61680&r2=61681
==============================================================================
--- branches/1.4/funcs/func_callerid.c (original)
+++ branches/1.4/funcs/func_callerid.c Wed Apr 18 21:45:05 2007
@@ -43,7 +43,9 @@
 {
 	char *opt = data;
 
-	/* XXX we are not always clearing the buffer. Is this correct ? */
+	if (!chan)
+		return -1;
+
 	if (strchr(opt, '|')) {
 		char name[80], num[80];
 
@@ -98,7 +100,7 @@
 static int callerid_write(struct ast_channel *chan, char *cmd, char *data,
 			  const char *value)
 {
-	if (!value)
+	if (!value || !chan)
 		return -1;
 
 	if (!strncasecmp("all", data, 3)) {

Modified: branches/1.4/funcs/func_cdr.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/funcs/func_cdr.c?view=diff&rev=61681&r1=61680&r2=61681
==============================================================================
--- branches/1.4/funcs/func_cdr.c (original)
+++ branches/1.4/funcs/func_cdr.c Wed Apr 18 21:45:05 2007
@@ -57,7 +57,7 @@
 {
 	char *ret;
 	struct ast_flags flags = { 0 };
-	struct ast_cdr *cdr = chan->cdr;
+	struct ast_cdr *cdr = chan ? chan->cdr : NULL;
 	AST_DECLARE_APP_ARGS(args,
 			     AST_APP_ARG(variable);
 			     AST_APP_ARG(options);
@@ -94,7 +94,7 @@
 			     AST_APP_ARG(options);
 	);
 
-	if (ast_strlen_zero(parse) || !value)
+	if (ast_strlen_zero(parse) || !value || !chan)
 		return -1;
 
 	AST_STANDARD_APP_ARGS(args, parse);

Modified: branches/1.4/funcs/func_groupcount.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/funcs/func_groupcount.c?view=diff&rev=61681&r1=61680&r2=61681
==============================================================================
--- branches/1.4/funcs/func_groupcount.c (original)
+++ branches/1.4/funcs/func_groupcount.c Wed Apr 18 21:45:05 2007
@@ -156,6 +156,9 @@
 	struct varshead *headp;
 	char tmp1[1024] = "";
 	char tmp2[1024] = "";
+
+	if (!chan)
+		return -1;
 
 	headp = &chan->varshead;
 	AST_LIST_TRAVERSE(headp, current, entries) {

Modified: branches/1.4/funcs/func_language.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/funcs/func_language.c?view=diff&rev=61681&r1=61680&r2=61681
==============================================================================
--- branches/1.4/funcs/func_language.c (original)
+++ branches/1.4/funcs/func_language.c Wed Apr 18 21:45:05 2007
@@ -48,7 +48,7 @@
 				"LANGUAGE() is deprecated; use CHANNEL(language) instead.\n");
 	}
 
-	ast_copy_string(buf, chan->language, len);
+	ast_copy_string(buf, chan ? chan->language : "", len);
 
 	return 0;
 }
@@ -62,7 +62,7 @@
 				"LANGUAGE() is deprecated; use CHANNEL(language) instead.\n");
 	}
 
-	if (value)
+	if (chan && value)
 		ast_string_field_set(chan, language, value);
 
 	return 0;

Modified: branches/1.4/funcs/func_moh.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/funcs/func_moh.c?view=diff&rev=61681&r1=61680&r2=61681
==============================================================================
--- branches/1.4/funcs/func_moh.c (original)
+++ branches/1.4/funcs/func_moh.c Wed Apr 18 21:45:05 2007
@@ -46,7 +46,7 @@
 		ast_log(LOG_WARNING, "MUSICCLASS() is deprecated; use CHANNEL(musicclass) instead.\n");
 	}
 
-	ast_copy_string(buf, chan->musicclass, len);
+	ast_copy_string(buf, chan ? chan->musicclass : "", len);
 
 	return 0;
 }
@@ -59,7 +59,8 @@
 		ast_log(LOG_WARNING, "MUSICCLASS() is deprecated; use CHANNEL(musicclass) instead.\n");
 	}
 
-	ast_string_field_set(chan, musicclass, value);
+	if (chan)
+		ast_string_field_set(chan, musicclass, value);
 
 	return 0;
 }

Modified: branches/1.4/funcs/func_timeout.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/funcs/func_timeout.c?view=diff&rev=61681&r1=61680&r2=61681
==============================================================================
--- branches/1.4/funcs/func_timeout.c (original)
+++ branches/1.4/funcs/func_timeout.c Wed Apr 18 21:45:05 2007
@@ -45,6 +45,9 @@
 {
 	time_t myt;
 
+	if (!chan)
+		return -1;
+
 	if (!data) {
 		ast_log(LOG_ERROR, "Must specify type of timeout to get.\n");
 		return -1;
@@ -89,6 +92,9 @@
 	int x;
 	char timestr[64];
 	struct tm myt;
+
+	if (!chan)
+		return -1;
 
 	if (!data) {
 		ast_log(LOG_ERROR, "Must specify type of timeout to set.\n");



More information about the svn-commits mailing list