diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-07-14 07:44:19 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-07-14 07:44:19 +0000 |
commit | 65ae377f3de37edbcb16041701b36a45c4ff65f6 (patch) | |
tree | 8c674c26fc4a65f5fb0b8a2719e3e95929336928 /file.c | |
parent | 4e18ef688947854313b99f35aa30c0e7d8ae29cd (diff) |
Remaining rgagnon source audit improvements (bug #2011)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3430 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'file.c')
-rwxr-xr-x | file.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -279,14 +279,17 @@ static int copy(char *infile, char *outfile) static char *build_filename(char *filename, char *ext) { char *fn; + int fnsize = 0; char tmp[AST_CONFIG_MAX_PATH]=""; - snprintf(tmp,sizeof(tmp)-1,"%s/%s",(char *)ast_config_AST_VAR_DIR,"sounds"); - fn = malloc(strlen(tmp) + strlen(filename) + strlen(ext) + 10); + + snprintf(tmp, sizeof(tmp), "%s/%s", ast_config_AST_VAR_DIR, "sounds"); + fnsize = strlen(tmp) + strlen(filename) + strlen(ext) + 10; + fn = malloc(fnsize); if (fn) { if (filename[0] == '/') - sprintf(fn, "%s.%s", filename, ext); + snprintf(fn, fnsize, "%s.%s", filename, ext); else - sprintf(fn, "%s/%s.%s", (char *)tmp, filename, ext); + snprintf(fn, fnsize, "%s/%s.%s", tmp, filename, ext); } return fn; |