aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_hasnewvoicemail.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/app_hasnewvoicemail.c')
-rwxr-xr-xapps/app_hasnewvoicemail.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/apps/app_hasnewvoicemail.c b/apps/app_hasnewvoicemail.c
index 5d681eb74..0115b5bb7 100755
--- a/apps/app_hasnewvoicemail.c
+++ b/apps/app_hasnewvoicemail.c
@@ -94,24 +94,25 @@ static int hasvoicemail_exec(struct ast_channel *chan, void *data)
int vmcount = 0;
static int dep_warning = 0;
+ if (!dep_warning) {
+ ast_log(LOG_WARNING, "The applications HasVoicemail and HasNewVoicemail have been deprecated. Please use the VMCOUNT() function instead.\n");
+ dep_warning = 1;
+ }
+
if (!data) {
ast_log(LOG_WARNING, "HasVoicemail requires an argument (vm-box[/folder][@context]|varname)\n");
return -1;
}
- if (!dep_warning) {
- ast_log(LOG_WARNING, "The applications HasVoicemail and HasNewVoicemail have been deprecated. Please use the VMCOUNT() function instead.\n");
- dep_warning = 1;
- }
+ LOCAL_USER_ADD(u);
input = ast_strdupa((char *)data);
if (! input) {
ast_log(LOG_ERROR, "Out of memory error\n");
+ LOCAL_USER_REMOVE(u);
return -1;
}
- LOCAL_USER_ADD(u);
-
temps = input;
if ((temps = strsep(&input, "|"))) {
if (input && !ast_strlen_zero(input))
@@ -158,11 +159,13 @@ static char *acf_vmcount_exec(struct ast_channel *chan, char *cmd, char *data, c
LOCAL_USER_ACF_ADD(u);
+ buf[0] = '\0';
+
args = ast_strdupa(data);
if (!args) {
ast_log(LOG_ERROR, "Out of memory");
LOCAL_USER_REMOVE(u);
- return "";
+ return buf;
}
box = strsep(&args, "|");
@@ -180,7 +183,9 @@ static char *acf_vmcount_exec(struct ast_channel *chan, char *cmd, char *data, c
}
snprintf(buf, len, "%d", hasvoicemail_internal(context, box, folder));
+
LOCAL_USER_REMOVE(u);
+
return buf;
}