From 4c1d49f5c85ba293bcabc694f5e4c2055ed7f11b Mon Sep 17 00:00:00 2001
From: Russell Bryant <russell@russellbryant.com>
Date: Thu, 23 Mar 2006 20:15:01 +0000
Subject: [PATCH] Merged revisions 14462 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r14462 | russell | 2006-03-23 15:13:48 -0500 (Thu, 23 Mar 2006) | 2 lines

don't crash when asked to read from a file that doesn't exist (issue #6786)

........


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

diff --git a/apps/app_readfile.c b/apps/app_readfile.c
index 4b3f57e946..708ad02f3f 100644
--- a/apps/app_readfile.c
+++ b/apps/app_readfile.c
@@ -92,15 +92,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;
 }
-- 
GitLab