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 <shadow@dementia.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
This commit is contained in:
Jeffrey Altman 2009-12-05 10:51:27 -05:00 committed by Jeffrey Altman
parent 2bffe725c5
commit 62a21819a1

View File

@ -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;