about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--malloc/malloc.c2
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index ae69ec5a3e..cf5e3394d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,11 @@
+2002-08-07  Jakub Jelinek  <jakub@redhat.com>
+
+        * malloc/malloc.c (public_cALLOc): Check ELEM_SIZE != 0 before
+	division.
+
 2002-08-06  Roland McGrath  <roland@redhat.com>
 
-	* include/getopt.h: But private decls inside [_GETOPT_H].
+	* include/getopt.h: Put private decls inside [_GETOPT_H].
 	Use libc_hidden_proto for getopt_long, getopt_long_only.
 	* posix/getopt1.c [_LIBC]: Include <getopt.h> instead of "getopt.h".
 	Add libc_hidden_def.
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 685514900c..b6fd367f8b 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -3474,7 +3474,7 @@ public_cALLOc(size_t n, size_t elem_size)
 #define HALF_INTERNAL_SIZE_T \
   (((INTERNAL_SIZE_T) 1) << (8 * sizeof (INTERNAL_SIZE_T) / 2))
   if (__builtin_expect ((n | elem_size) >= HALF_INTERNAL_SIZE_T, 0)) {
-    if (bytes / elem_size != n) {
+    if (elem_size != 0 && bytes / elem_size != n) {
       MALLOC_FAILURE_ACTION;
       return 0;
     }