From 1c77473551cbb1be423caef72321d4e510408285 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Thu, 26 Oct 2017 10:33:08 -0700 Subject: [PATCH] scoutfs: free both btree iter keys on error I noticed while working on other code that we weren't trying to free potentially allocated btree iter keys if one of them saw an allocation failure. Signed-off-by: Zach Brown --- kmod/src/btree.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kmod/src/btree.c b/kmod/src/btree.c index 2376ab54..83b82894 100644 --- a/kmod/src/btree.c +++ b/kmod/src/btree.c @@ -1371,8 +1371,10 @@ static int btree_iter(struct super_block *sb, struct scoutfs_btree_root *root, walk_key = kmalloc(SCOUTFS_BTREE_MAX_KEY_LEN, GFP_NOFS); iter_key = kmalloc(SCOUTFS_BTREE_MAX_KEY_LEN, GFP_NOFS); - if (!walk_key || !iter_key) - return -ENOMEM; + if (!walk_key || !iter_key) { + ret = -ENOMEM; + goto out; + } memcpy(walk_key, key, key_len); walk_len = key_len; @@ -1414,6 +1416,7 @@ static int btree_iter(struct super_block *sb, struct scoutfs_btree_root *root, break; } +out: kfree(walk_key); kfree(iter_key);