]> granicus.if.org Git - gc/commitdiff
Fix calloc-related code to prevent SIZE_MAX redefinition in sys headers
authorIvan Maidanski <ivmai@mail.ru>
Thu, 15 Mar 2012 16:30:11 +0000 (20:30 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Thu, 15 Mar 2012 16:30:11 +0000 (20:30 +0400)
* malloc.c: Include limits.h for SIZE_MAX.
* malloc.c (SIZE_MAX, calloc): Define GC_SIZE_MAX instead of SIZE_MAX.

malloc.c

index 899d6ff12bf9580973a9f5c18c20e04735728c9d..cb49a5cf4512088f90f6013c2dfb7020722d6ae4 100644 (file)
--- a/malloc.c
+++ b/malloc.c
@@ -374,12 +374,16 @@ void * malloc(size_t lb)
   }
 #endif /* GC_LINUX_THREADS */
 
-#ifndef SIZE_MAX
-#define SIZE_MAX (~(size_t)0)
+#include <limits.h>
+#ifdef SIZE_MAX
+# define GC_SIZE_MAX SIZE_MAX
+#else
+# define GC_SIZE_MAX (~(size_t)0)
 #endif
+
 void * calloc(size_t n, size_t lb)
 {
-    if (lb && n > SIZE_MAX / lb)
+    if (lb && n > GC_SIZE_MAX / lb)
       return NULL;
 #   if defined(GC_LINUX_THREADS) /* && !defined(USE_PROC_FOR_LIBRARIES) */
         /* libpthread allocated some memory that is only pointed to by  */