From: Jeffrey Altman Date: Sat, 5 Dec 2009 15:51:27 +0000 (-0500) Subject: Windows: cm_BPlusEnumAlloc should not fail for zero entries X-Git-Tag: openafs-devel-1_5_69~107 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=62a21819a1b57d006c73f84362494794651d1a37;p=packages%2Fo%2Fopenafs.git Windows: cm_BPlusEnumAlloc should not fail for zero entries If cm_BPlusEnumAlloc returns NULL, the caller assumes a memory allocation error. If the enumeration consists of zero entries, allocate a structure that stores zero entries. LICENSE MIT Change-Id: I8ed3811a1b3a0e4262749e110027c5d5812338b6 Reviewed-on: http://gerrit.openafs.org/892 Reviewed-by: Derrick Brashear Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman --- diff --git a/src/WINNT/afsd/cm_btree.c b/src/WINNT/afsd/cm_btree.c index 2ae7c0ce3..58dee1425 100644 --- a/src/WINNT/afsd/cm_btree.c +++ b/src/WINNT/afsd/cm_btree.c @@ -2160,9 +2160,9 @@ cm_BPlusEnumAlloc(afs_uint32 entries) size_t size; if (entries == 0) - return NULL; - - size = sizeof(cm_direnum_t)+(entries-1)*sizeof(cm_direnum_entry_t); + size = sizeof(cm_direnum_t); + else + size = sizeof(cm_direnum_t)+(entries-1)*sizeof(cm_direnum_entry_t); enump = (cm_direnum_t *)malloc(size); memset(enump, 0, size); enump->count = entries;