On 23.11.22 09:06, Mikhail Ilin wrote:
If memory allocation fails on line 780, then 'fail' will be jumped to and 'ptr' will be null, causing it to be dereferenced it on line 855. Thus, before using 'ptr[i]' one must make sure that the 'ptr' pointer is not NULL.
Nitpicking. You seem to have a leading space in this comment block. Please remove next time.
Fixes: 934b14f2bb30 ("ext4: free allocations by parse_path()") Signed-off-by: Mikhail Ilin <ilin.mikhail...@gmail.com> --- fs/ext4/ext4_common.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c index 1185cb2c04..3cdd1a04a9 100644 --- a/fs/ext4/ext4_common.c +++ b/fs/ext4/ext4_common.c @@ -851,10 +851,12 @@ end: fail: free(depth_dirname); free(parse_dirname); - for (i = 0; i < depth; i++) { - if (!ptr[i]) - break; - free(ptr[i]); + if (ptr) { + for (i = 0; i < depth; i++) { + if (!ptr[i]) + break; + free(ptr[i]); + } } free(ptr);
Won't this fail with ptr == NULL? Please also include the free(ptr) into the if (ptr) { } part. Thanks, Stefan