From 685e88645fb6b3ec6447c5e5870d07d5e5cbd43a Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Tue, 15 Nov 2005 18:35:30 +0000 Subject: [PATCH] don't crash on setvar (issue #5760) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7099 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- ChangeLog | 2 ++ manager.c | 13 ++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8d7f0a948d..99a5ca9c94 100755 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2005-11-15 Russell Bryant + * manager.c: Don't crash on a SetVar action if the channel name is not set, or variable's value is not set (issue #5760) + * doc/README.variables: Add application exit status variables 2005-11-14 Josh Roberson diff --git a/manager.c b/manager.c index 629cad2131..ea813d64ad 100755 --- a/manager.c +++ b/manager.c @@ -689,6 +689,11 @@ static int action_setvar(struct mansession *s, struct message *m) astman_send_error(s, m, "No variable specified"); return 0; } + + if (ast_strlen_zero(varval)) { + astman_send_error(s, m, "No value specified"); + return 0; + } if (!ast_strlen_zero(name)) { c = ast_get_channel_by_name_locked(name); @@ -698,10 +703,12 @@ static int action_setvar(struct mansession *s, struct message *m) } } - pbx_builtin_setvar_helper(c,varname,varval); + pbx_builtin_setvar_helper(c, varname, varval); - ast_mutex_unlock(&c->lock); - astman_send_ack(s, m, "Variable Set"); + if (c) + ast_mutex_unlock(&c->lock); + + astman_send_ack(s, m, "Variable Set"); return 0; }