1. I don't see much reason to mention calloc() as an alternative to
reallocarray() when it's the worse option.
2. Use size > 0 when testing overflow.
ok?
Index: lib/libc/stdlib/malloc.3
===
RCS file: /cvs/src/lib/libc/stdlib/malloc.3,v
retrieving revision 1.91
diff -u -p -r1.91 malloc.3
--- lib/libc/stdlib/malloc.314 Sep 2015 13:08:01 - 1.91
+++ lib/libc/stdlib/malloc.31 Nov 2015 16:35:17 -
@@ -203,10 +203,6 @@ if ((p = reallocarray(NULL, num, size))
err(1, "reallocarray");
.Ed
.Pp
-Alternatively,
-.Fn calloc
-may be used at the cost of initialization overhead.
-.Pp
When using
.Fn realloc ,
be careful to avoid the following idiom:
@@ -291,7 +287,7 @@ size_t num, size;
\&...
/* Check for size_t overflow */
-if (size && num > SIZE_MAX / size)
+if (size > 0 && num > SIZE_MAX / size)
errc(1, EOVERFLOW, "overflow");
if ((p = malloc(size * num)) == NULL)
@@ -309,7 +305,7 @@ if (size < 0 || num < 0)
errc(1, EOVERFLOW, "overflow");
/* Check for signed int overflow */
-if (size && num > INT_MAX / size)
+if (size > 0 && num > INT_MAX / size)
errc(1, EOVERFLOW, "overflow");
if ((p = malloc(size * num)) == NULL)