+2011-03-24 Eric Blake <eblake@redhat.com>
+
+ realloc: document portability problem
+ * doc/posix-functions/realloc.texi (realloc): Mention pitfalls of
+ passing 0 size to realloc.
+
2011-03-23 Ben Walton <bwalton@artsci.utoronto.ca>
doc: update users.txt
Portability problems not fixed by Gnulib:
@itemize
+@item
+It is not portable to call @code{realloc} with a size of 0. With a
+NULL pointer argument, this is the same ambiguity as @code{malloc (0)}
+on whether a unique zero-size object is created. With a non-NULL
+pointer argument, C99 requires that if @code{realloc (p, 0)} returns
+@code{NULL} then @code{p} is still valid. Among implementations that
+obey C99, behavior varies on whether @code{realloc (p, 0)} always
+fails and leaves @code{p} valid, or usually succeeds and returns a
+unique zero-size object; either way, a program not suspecting these
+semantics will leak memory (either the still-valid @code{p}, or the
+non-NULL return value). Meanwhile, several implementations violate
+C99, by always calling @code{free (p)} but returning NULL:
+glibc, Cygwin
@end itemize
Extension: Gnulib provides a module @samp{realloc-gnu} that substitutes a