aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-03-23 20:13:48 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-03-23 20:13:48 +0000
commitdbd91654a28ee4a0aa1fece0901fdd836a5351dc (patch)
tree4f3e29a3609d3dab2ba9b3d233d6b6ad991acf44 /apps
parentaf458de73b942498575d5fb555f5661175d412e4 (diff)
don't crash when asked to read from a file that doesn't exist (issue #6786)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@14462 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r--apps/app_readfile.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/apps/app_readfile.c b/apps/app_readfile.c
index 3340964b7..bc418aaa1 100644
--- a/apps/app_readfile.c
+++ b/apps/app_readfile.c
@@ -95,15 +95,16 @@ static int readfile_exec(struct ast_channel *chan, void *data)
}
}
- returnvar = ast_read_textfile(file);
- if(len > 0){
- if(len < strlen(returnvar))
- returnvar[len]='\0';
- else
- ast_log(LOG_WARNING,"%s is longer than %d, and %d \n", file, len, (int)strlen(returnvar));
+ if ((returnvar = ast_read_textfile(file))) {
+ if (len > 0) {
+ if (len < strlen(returnvar))
+ returnvar[len]='\0';
+ else
+ ast_log(LOG_WARNING, "%s is longer than %d, and %d \n", file, len, (int)strlen(returnvar));
+ }
+ pbx_builtin_setvar_helper(chan, varname, returnvar);
+ free(returnvar);
}
- pbx_builtin_setvar_helper(chan, varname, returnvar);
- free(returnvar);
LOCAL_USER_REMOVE(u);
return res;
}