aboutsummaryrefslogtreecommitdiffstats
path: root/manager.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-11-14 05:52:08 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-11-14 05:52:08 +0000
commit85a72bc5f75933eb7a3c894d5b3a92299ae66162 (patch)
tree9d3c727043295b59dd76836a3b472f8f80bcdb6c /manager.c
parent791fac42d7e72c4c3d9eab61e5e44114e5ad9765 (diff)
Fix possible race...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4238 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'manager.c')
-rwxr-xr-xmanager.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/manager.c b/manager.c
index 7bfccaa33..55f2ebeb8 100755
--- a/manager.c
+++ b/manager.c
@@ -614,6 +614,7 @@ static int action_getvar(struct mansession *s, struct message *m)
char *varname = astman_get_header(m, "Variable");
char *id = astman_get_header(m,"ActionID");
char *varval;
+ char *varval2=NULL;
if (!strlen(name)) {
astman_send_error(s, m, "No channel specified");
@@ -638,11 +639,14 @@ static int action_getvar(struct mansession *s, struct message *m)
}
varval=pbx_builtin_getvar_helper(c,varname);
-
+ if (varval)
+ varval2 = ast_strdupa(varval);
+ if (!varval2)
+ varval2 = "";
ast_mutex_unlock(&c->lock);
ast_mutex_lock(&s->lock);
ast_cli(s->fd, "Response: Success\r\n"
- "%s: %s\r\n" ,varname,varval);
+ "%s: %s\r\n" ,varname,varval2);
if (id && !ast_strlen_zero(id))
ast_cli(s->fd, "ActionID: %s\r\n",id);
ast_cli(s->fd, "\r\n");