From 9fd274644226985ad42227e4128c146b8f21da3b Mon Sep 17 00:00:00 2001
From: Russell Bryant <russell@russellbryant.com>
Date: Sat, 21 Jan 2006 18:11:40 +0000
Subject: [PATCH] don't do the memcpy inside of ast_strdupa if we know that
 __builtin_alloca was not successful

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@8393 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 include/asterisk/utils.h | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h
index 91f12c1e9d..f16817b868 100644
--- a/include/asterisk/utils.h
+++ b/include/asterisk/utils.h
@@ -387,10 +387,6 @@ char *_ast_strndup(const char *str, size_t len, const char *file, int lineno, co
 
   This macro will duplicate the given string.  It returns a pointer to the stack
   allocatted memory for the new string.
-
-  \note If this function fails to allocate memory on the stack, we do not make
-  any effort to prevent Asterisk from crashing.  We will attempt to log an
-  error message, but Asterisk will crash shortly after.
 */
 #define ast_strdupa(s)                                                    \
 	(__extension__                                                    \
@@ -402,7 +398,9 @@ char *_ast_strndup(const char *str, size_t len, const char *file, int lineno, co
 			ast_log(LOG_ERROR, "Stack Allocation Error in"    \
 				"function '%s' at line '%d' of '%s'!\n",  \
 				__PRETTY_FUNCTION__, __LINE__, __FILE__); \
-		(char *) memcpy (__new, __old, __len);                    \
+		else                                                      \
+			memcpy (__new, __old, __len);                     \
+		__new;                                                    \
 	}))
 #endif
 
-- 
GitLab