diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h index 91f12c1e9d22ded4b5d80b524aaf56d9a920128f..f16817b868a9e1ff791c5bbc6d405995035cdc4d 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