Bug 615379 - g_new macros crash if sizeof(struct_type) == 0
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 22 Apr 2010 23:48:13 +0000 (19:48 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Thu, 22 Apr 2010 23:48:45 +0000 (19:48 -0400)
glib/gmem.h

index 2fef766..54f153b 100644 (file)
@@ -88,7 +88,7 @@ gpointer g_try_realloc_n  (gpointer    mem,
          if (__s == 1)                 \
            __p = g_##func (__n);                               \
          else if (__builtin_constant_p (__n) &&                \
-                  __n <= G_MAXSIZE / __s)                      \
+                  (__s == 0 || __n <= G_MAXSIZE / __s))        \
            __p = g_##func (__n * __s);                         \
          else                                                  \
            __p = g_##func##_n (__n, __s);                      \
@@ -102,7 +102,7 @@ gpointer g_try_realloc_n  (gpointer  mem,
          if (__s == 1)                                         \
            __p = g_##func (__p, __n);                          \
          else if (__builtin_constant_p (__n) &&                \
-                  __n <= G_MAXSIZE / __s)                      \
+                  (__s == 0 || __n <= G_MAXSIZE / __s))        \
            __p = g_##func (__p, __n * __s);                    \
          else                                                  \
            __p = g_##func##_n (__p, __n, __s);                 \