From ff42a275f8cd6fc1450fbebeeb912d1d56c98742 Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Thu, 7 Apr 2005 19:25:52 +0000
Subject: [PATCH] Match special case of wav49 behavior (bug #3975)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5436 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 file.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/file.c b/file.c
index 59db9a686f..a37b5c507b 100755
--- a/file.c
+++ b/file.c
@@ -280,22 +280,28 @@ static int copy(const char *infile, const char *outfile)
 
 static char *build_filename(const char *filename, const char *ext)
 {
-	char *fn;
+	char *fn, type[16];
 	int fnsize = 0;
 
+	if (!strcmp(ext, "wav49")) {
+		strncpy(type, "WAV", sizeof(type) - 1);
+	} else {
+		strncpy(type, ext, sizeof(type) - 1);
+	}
+
 	if (filename[0] == '/') {
-		fnsize = strlen(filename) + strlen(ext) + 2;
+		fnsize = strlen(filename) + strlen(type) + 2;
 		fn = malloc(fnsize);
 		if (fn)
-			snprintf(fn, fnsize, "%s.%s", filename, ext);
+			snprintf(fn, fnsize, "%s.%s", filename, type);
 	} 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;
+		fnsize = strlen(tmp) + strlen(filename) + strlen(type) + 3;
 		fn = malloc(fnsize);
 		if (fn)
-			snprintf(fn, fnsize, "%s/%s.%s", tmp, filename, ext);
+			snprintf(fn, fnsize, "%s/%s.%s", tmp, filename, type);
 	}
 
 	return fn;
@@ -355,9 +361,6 @@ static int ast_filehelper(const char *filename, const char *filename2, const cha
 			/* Try each kind of extension */
 			stringp=exts;
 			ext = strsep(&stringp, "|");
-			if (!strcmp(ext,"wav49")) {
-				ext = "WAV";
-			}
 			do {
 				fn = build_filename(filename, ext);
 				if (fn) {
-- 
GitLab