aboutsummaryrefslogtreecommitdiffstats
path: root/manager.c
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2005-11-15 18:35:30 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2005-11-15 18:35:30 +0000
commit4feee61e3299788aa180776ee939cb22e9cd1d1f (patch)
tree9cab89d82ce0b3bc74250bd8f03c9c76e0ce8076 /manager.c
parent1a9b411b0249c3b3cebba0d951df01c737780f58 (diff)
don't crash on setvar (issue #5760)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7099 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'manager.c')
-rwxr-xr-xmanager.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/manager.c b/manager.c
index 629cad213..ea813d64a 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;
}