From 6ab4820c3acb044f4ab93586b40862926f3b02a6 Mon Sep 17 00:00:00 2001
From: Tim Wickberg <tim@schedmd.com>
Date: Thu, 31 Jan 2019 14:32:20 -0700
Subject: [PATCH] Tweak safe_xcalloc / safe_xmalloc macros to allow zero size
 allocations.

A lot of places rely on a zero size (or, after xcalloc conversion, count)
resulting in a NULL return, so stop xassert()'ing those cases and avoid
jumping to the unpack_error label.
---
 src/common/pack.h | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/common/pack.h b/src/common/pack.h
index 3154b2bb81d..8f76eff4322 100644
--- a/src/common/pack.h
+++ b/src/common/pack.h
@@ -367,15 +367,12 @@ int	unpackmem_array(char *valp, uint32_t size_valp, Buf buffer);
 } while (0)
 
 #define safe_xcalloc(p, cnt, sz) do {			\
-	assert(cnt);					\
-	assert(sz);					\
-	if (!(p = try_xcalloc(cnt, sz)))		\
+	if (!(p = try_xcalloc(cnt, sz)) && cnt && sz)	\
 		goto unpack_error;			\
 } while (0)
 
 #define safe_xmalloc(p, sz) do {			\
-	assert(sz);					\
-	if (!(p = try_xmalloc(sz)))			\
+	if (!(p = try_xmalloc(sz)) && sz)		\
 		goto unpack_error;			\
 } while (0)
 
-- 
GitLab