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