diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-01-10 04:18:18 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-01-10 04:18:18 +0000 |
commit | 81abae17329a64e7ad8f2a87506e7bc65556075f (patch) | |
tree | 7063d8a763bc08de9f40cd89209bcd85ce79970c /file.c | |
parent | 106ebde6c884402848452ef92ba5d29fc6110e21 (diff) |
Fix voicemail symlinks (bug #3024)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4743 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'file.c')
-rwxr-xr-x | file.c | 20 |
1 files changed, 12 insertions, 8 deletions
@@ -282,19 +282,23 @@ static char *build_filename(const char *filename, const char *ext) { char *fn; int fnsize = 0; - char tmp[AST_CONFIG_MAX_PATH]=""; - 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] == '/') + if (filename[0] == '/') { + fnsize = strlen(filename) + strlen(ext) + 2; + fn = malloc(fnsize); + if (fn) snprintf(fn, fnsize, "%s.%s", filename, ext); - else + } else { + char tmp[AST_CONFIG_MAX_PATH] = ""; + + snprintf(tmp, sizeof(tmp), "%s/%s", ast_config_AST_VAR_DIR, "sounds"); + fnsize = strlen(tmp) + strlen(filename) + strlen(ext) + 3; + fn = malloc(fnsize); + if (fn) snprintf(fn, fnsize, "%s/%s.%s", tmp, filename, ext); } + return fn; - } static int exts_compare(const char *exts, const char *type) |