]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - include/alloca.h
Correct range checking in mallopt/mxfast/tcache [BZ #25194]
[thirdparty/glibc.git] / include / alloca.h
index f741d25d5479fde3b8db0e232c0bd20c7291882f..c0b83954436ed4c1e7c3246e914bc36ac1606dd9 100644 (file)
@@ -1,6 +1,9 @@
 #ifndef _ALLOCA_H
 
 #include <stdlib/alloca.h>
+
+# ifndef _ISOMAC
+
 #include <stackinfo.h>
 
 #undef __alloca
@@ -20,57 +23,18 @@ libc_hidden_proto (__libc_alloca_cutoff)
 
 #include <allocalim.h>
 
-#ifndef stackinfo_alloca_round
-# define stackinfo_alloca_round(l) (((l) + 15) & -16)
-#endif
-
-#if _STACK_GROWS_DOWN
-# define extend_alloca(buf, len, newlen) \
-  (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen);      \
-                     char *__newbuf = __alloca (__newlen);                   \
-                     if (__newbuf + __newlen == (char *) buf)                \
-                       len += __newlen;                                      \
-                     else                                                    \
-                       len = __newlen;                                       \
-                     __newbuf; })
-#elif _STACK_GROWS_UP
-# define extend_alloca(buf, len, newlen) \
-  (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen);      \
-                     char *__newbuf = __alloca (__newlen);                   \
-                     char *__buf = (buf);                                    \
-                     if (__buf + len == __newbuf)                            \
-                       {                                                     \
-                         len += __newlen;                                    \
-                         __newbuf = __buf;                                   \
-                       }                                                     \
-                     else                                                    \
-                       len = __newlen;                                       \
-                     __newbuf; })
-#else
-# define extend_alloca(buf, len, newlen) \
-  __alloca (((len) = (newlen)))
-#endif
-
 #if defined stackinfo_get_sp && defined stackinfo_sub_sp
 # define alloca_account(size, avar) \
   ({ void *old__ = stackinfo_get_sp ();                                              \
      void *m__ = __alloca (size);                                            \
      avar += stackinfo_sub_sp (old__);                                       \
      m__; })
-# define extend_alloca_account(buf, len, newlen, avar) \
-  ({ void *old__ = stackinfo_get_sp ();                                              \
-     void *m__ = extend_alloca (buf, len, newlen);                           \
-     avar += stackinfo_sub_sp (old__);                                       \
-     m__; })
 #else
 # define alloca_account(size, avar) \
   ({ size_t s__ = (size);                                                    \
      avar += s__;                                                            \
      __alloca (s__); })
-# define extend_alloca_account(buf, len, newlen, avar) \
-  ({ size_t s__ = (newlen);                                                  \
-     avar += s__;                                                            \
-     extend_alloca (buf, len, s__); })
 #endif
 
+# endif /* !_ISOMAC */
 #endif