mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-11 07:13:20 +00:00
Clean up and ensure proper usage of alloca()
This replaces all calls to alloca() with ast_alloca() which calls gcc's __builtin_alloca() to avoid BSD semantics and removes all NULL checks on memory allocated via ast_alloca() and ast_strdupa(). (closes issue ASTERISK-20125) Review: https://reviewboard.asterisk.org/r/2032/ Patch-by: Walter Doekes (wdoekes) ........ Merged revisions 370642 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370643 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@370655 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -646,6 +646,15 @@ int _ast_vasprintf(char **ret, const char *file, int lineno, const char *func, c
|
||||
|
||||
#endif /* AST_DEBUG_MALLOC */
|
||||
|
||||
/*!
|
||||
\brief call __builtin_alloca to ensure we get gcc builtin semantics
|
||||
\param size The size of the buffer we want allocated
|
||||
|
||||
This macro will attempt to allocate memory from the stack. If it fails
|
||||
you won't get a NULL returned, but a SEGFAULT if you're lucky.
|
||||
*/
|
||||
#define ast_alloca(size) __builtin_alloca(size)
|
||||
|
||||
#if !defined(ast_strdupa) && defined(__GNUC__)
|
||||
/*!
|
||||
* \brief duplicate a string in memory from the stack
|
||||
|
Reference in New Issue
Block a user