--- diffutils-2.8.7.orig/lib/xmalloc.c 2003-11-22 15:07:36 +0000 +++ diffutils-2.8.7/lib/xmalloc.c 2005-08-27 05:16:39 +0000 @@ -70,8 +70,8 @@ static inline void * xnmalloc_inline (size_t n, size_t s) { - void *p; - if (xalloc_oversized (n, s) || ! (p = malloc (n * s))) + void *p = NULL; + if (xalloc_oversized (n, s) || ! ((n * s == 0) || (p = malloc (n * s)))) xalloc_die (); return p; } @@ -96,7 +96,7 @@ static inline void * xnrealloc_inline (void *p, size_t n, size_t s) { - if (xalloc_oversized (n, s) || ! (p = realloc (p, n * s))) + if (xalloc_oversized (n, s) || ! ((p = realloc (p, n * s)) || (n * s == 0))) xalloc_die (); return p; }