diff options
Diffstat (limited to 'apps/app_verbose.c')
-rw-r--r-- | apps/app_verbose.c | 57 |
1 files changed, 33 insertions, 24 deletions
diff --git a/apps/app_verbose.c b/apps/app_verbose.c index 4b7a54b0e..4ec4839d7 100644 --- a/apps/app_verbose.c +++ b/apps/app_verbose.c @@ -67,34 +67,38 @@ static int verbose_exec(struct ast_channel *chan, void *data) LOCAL_USER_ADD(u); if (data) { - vtext = ast_strdupa(data); - char *tmp = strsep(&vtext, "|,"); + vtext = ast_strdupa((char *)data); if (vtext) { - if (sscanf(tmp, "%d", &vsize) != 1) { + char *tmp = strsep(&vtext, "|,"); + if (vtext) { + if (sscanf(tmp, "%d", &vsize) != 1) { + vsize = 0; + ast_log(LOG_WARNING, "'%s' is not a verboser number\n", vtext); + } + } else { + vtext = tmp; vsize = 0; - ast_log(LOG_WARNING, "'%s' is not a verboser number\n", vtext); } - } else { - vtext = tmp; - vsize = 0; - } - if (option_verbose >= vsize) { - switch (vsize) { - case 0: - ast_verbose("%s\n", vtext); - break; - case 1: - ast_verbose(VERBOSE_PREFIX_1 "%s\n", vtext); - break; - case 2: - ast_verbose(VERBOSE_PREFIX_2 "%s\n", vtext); - break; - case 3: - ast_verbose(VERBOSE_PREFIX_3 "%s\n", vtext); - break; - default: - ast_verbose(VERBOSE_PREFIX_4 "%s\n", vtext); + if (option_verbose >= vsize) { + switch (vsize) { + case 0: + ast_verbose("%s\n", vtext); + break; + case 1: + ast_verbose(VERBOSE_PREFIX_1 "%s\n", vtext); + break; + case 2: + ast_verbose(VERBOSE_PREFIX_2 "%s\n", vtext); + break; + case 3: + ast_verbose(VERBOSE_PREFIX_3 "%s\n", vtext); + break; + default: + ast_verbose(VERBOSE_PREFIX_4 "%s\n", vtext); + } } + } else { + ast_log(LOG_ERROR, "Out of memory\n"); } } @@ -117,6 +121,11 @@ static int log_exec(struct ast_channel *chan, void *data) } ltext = ast_strdupa(data); + if (!ltext) { + ast_log(LOG_ERROR, "Out of memory\n"); + LOCAL_USER_REMOVE(u); + return 0; + } level = strsep(<ext, "|"); |