aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-01-10 04:18:18 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-01-10 04:18:18 +0000
commit81abae17329a64e7ad8f2a87506e7bc65556075f (patch)
tree7063d8a763bc08de9f40cd89209bcd85ce79970c /file.c
parent106ebde6c884402848452ef92ba5d29fc6110e21 (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-xfile.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/file.c b/file.c
index 57b2b7adb..4213f5e31 100755
--- a/file.c
+++ b/file.c
@@ -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)