From 6f4ed82da9d941ac303eb2f886f95d97828119bc Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Tue, 8 Dec 2009 09:38:53 -0500 Subject: [PATCH] Windows: return ENOMEM from cm_BPlus functions on malloc failure There are several cm_BPlus functions that do not return an error code on malloc failure. LICENSE MIT Change-Id: I3a3d78cc6d6844c78e51fa81ebf330f5af88a7a5 Reviewed-on: http://gerrit.openafs.org/900 Tested-by: Jeffrey Altman Reviewed-by: Rod Widdowson Reviewed-by: Asanka Herath Tested-by: Asanka Herath Reviewed-by: Jeffrey Altman --- src/WINNT/afsd/cm_btree.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/WINNT/afsd/cm_btree.c b/src/WINNT/afsd/cm_btree.c index 58dee14..5002832 100644 --- a/src/WINNT/afsd/cm_btree.c +++ b/src/WINNT/afsd/cm_btree.c @@ -2164,8 +2164,10 @@ cm_BPlusEnumAlloc(afs_uint32 entries) 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; + if (enump) { + memset(enump, 0, size); + enump->count = entries; + } return enump; } @@ -2340,6 +2342,8 @@ cm_BPlusDirEnumBulkStat(cm_direnum_t *enump) return 0; bsp = malloc(sizeof(cm_bulkStat_t)); + if (!bsp) + return ENOMEM; memset(bsp, 0, sizeof(cm_bulkStat_t)); for ( count = 0; count < enump->count; count++ ) { @@ -2400,6 +2404,8 @@ cm_BPlusDirEnumBulkStatNext(cm_direnum_t *enump) return 0; bsp = malloc(sizeof(cm_bulkStat_t)); + if (!bsp) + return ENOMEM; memset(bsp, 0, sizeof(cm_bulkStat_t)); for ( count = enump->next; count < enump->count; count++ ) { -- 1.9.4