don't do the memcpy inside of ast_strdupa if we know that __builtin_alloca
authorRussell Bryant <russell@russellbryant.com>
Sat, 21 Jan 2006 18:11:40 +0000 (18:11 +0000)
committerRussell Bryant <russell@russellbryant.com>
Sat, 21 Jan 2006 18:11:40 +0000 (18:11 +0000)
was not successful

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@8393 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/utils.h

index 91f12c1..f16817b 100644 (file)
@@ -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