aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-21 21:37:55 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-21 21:37:55 +0000
commit047566c1224de26fb0d2aa6e41204291a8bae98b (patch)
treea7db91802b0dbe4cc8d39a950957efdee69b623e /apps
parentdd209fe1687a85430a57f69b20caf39540a65f7f (diff)
Don't explode if the gain option is specified without a value. (issue #9274 reported by mfarver)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@70898 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r--apps/app_voicemail.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index ce6cad0bf..e4dcce86f 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -5179,7 +5179,11 @@ static int vm_execmain(struct ast_channel *chan, void *data)
if (ast_test_flag(&flags, OPT_RECORDGAIN)) {
int gain;
- if (sscanf(opts[OPT_ARG_RECORDGAIN], "%d", &gain) != 1) {
+ if (ast_strlen_zero(opts[OPT_ARG_RECORDGAIN])) {
+ ast_log(LOG_WARNING, "No value provided for record gain option\n");
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ } else if (sscanf(opts[OPT_ARG_RECORDGAIN], "%d", &gain) != 1) {
ast_log(LOG_WARNING, "Invalid value '%s' provided for record gain option\n", opts[OPT_ARG_RECORDGAIN]);
LOCAL_USER_REMOVE(u);
return -1;