diff options
-rw-r--r-- | funcs/func_lock.c | 18 | ||||
-rw-r--r-- | funcs/func_shell.c | 6 |
2 files changed, 17 insertions, 7 deletions
diff --git a/funcs/func_lock.c b/funcs/func_lock.c index b8c685340..9985f26c5 100644 --- a/funcs/func_lock.c +++ b/funcs/func_lock.c @@ -256,19 +256,27 @@ static int unlock_read(struct ast_channel *chan, const char *cmd, char *data, ch } static int lock_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len) -{ - ast_autoservice_start(chan); +{ + if (chan) + ast_autoservice_start(chan); + ast_copy_string(buf, get_lock(chan, data, 0) ? "0" : "1", len); - ast_autoservice_stop(chan); + + if (chan) + ast_autoservice_stop(chan); return 0; } static int trylock_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len) { - ast_autoservice_start(chan); + if (chan) + ast_autoservice_start(chan); + ast_copy_string(buf, get_lock(chan, data, 1) ? "0" : "1", len); - ast_autoservice_stop(chan); + + if (chan) + ast_autoservice_stop(chan); return 0; } diff --git a/funcs/func_shell.c b/funcs/func_shell.c index 9653fcab0..3acafe25a 100644 --- a/funcs/func_shell.c +++ b/funcs/func_shell.c @@ -49,7 +49,8 @@ static int shell_helper(struct ast_channel *chan, const char *cmd, char *data, return -1; } - ast_autoservice_start(chan); + if (chan) + ast_autoservice_start(chan); if (len >= 1) { FILE *ptr; @@ -62,7 +63,8 @@ static int shell_helper(struct ast_channel *chan, const char *cmd, char *data, pclose(ptr); } - ast_autoservice_stop(chan); + if (chan) + ast_autoservice_stop(chan); return 0; } |