From 04e6332ec0b139a0b7452551455ae96428c7d1ef Mon Sep 17 00:00:00 2001 From: Mikhail Ilin Date: Tue, 22 Nov 2022 11:00:55 +0300 Subject: fs: ext4: Fix free(NULL) The 'depth_dirname', 'ptr', 'parent_inode' and 'first_inode' pointers may be null. Thus, it is necessary to check them before using free() to avoid free(NULL) cases. Fixes: 934b14f2bb30 ("ext4: free allocations by parse_path()") Signed-off-by: Mikhail Ilin --- fs/ext4/ext4_common.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'fs') diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c index 1185cb2c04..f50de7c089 100644 --- a/fs/ext4/ext4_common.c +++ b/fs/ext4/ext4_common.c @@ -850,15 +850,20 @@ end: fail: free(depth_dirname); - free(parse_dirname); - for (i = 0; i < depth; i++) { - if (!ptr[i]) - break; - free(ptr[i]); + if (parse_dirname) + free(parse_dirname); + if (ptr) { + for (i = 0; i < depth; i++) { + if (!ptr[i]) + break; + free(ptr[i]); + } + free(ptr); } - free(ptr); - free(parent_inode); - free(first_inode); + if (parent_inode) + free(parent_inode); + if (first_inode) + free(first_inode); return result_inode_no; } -- cgit v1.2.3