[lustre-devel] [PATCH 2/7] lustre/libcfs: fix freeing after kmalloc failure.

NeilBrown neilb at suse.com
Sun Jul 29 20:49:32 PDT 2018


The new_bkts array is *not* zeroed (any more) so when
freeing recently allocated buckets on failure, we
must no free beyond the last bucket successfully
allocated.

Fixes: 12e46c461cb9 ("staging: lustre: change some LIBCFS_ALLOC calls to k?alloc(GFP_KERNEL)")
Signed-off-by: NeilBrown <neilb at suse.com>
---
 drivers/staging/lustre/lnet/libcfs/hash.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/lustre/lnet/libcfs/hash.c b/drivers/staging/lustre/lnet/libcfs/hash.c
index 48be66f0d654..f452c4540ca1 100644
--- a/drivers/staging/lustre/lnet/libcfs/hash.c
+++ b/drivers/staging/lustre/lnet/libcfs/hash.c
@@ -904,7 +904,7 @@ cfs_hash_buckets_realloc(struct cfs_hash *hs, struct cfs_hash_bucket **old_bkts,
 		new_bkts[i] = kzalloc(cfs_hash_bkt_size(hs), GFP_KERNEL);
 		if (!new_bkts[i]) {
 			cfs_hash_buckets_free(new_bkts, cfs_hash_bkt_size(hs),
-					      old_size, new_size);
+					      old_size, i);
 			return NULL;
 		}
 




More information about the lustre-devel mailing list