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 <ilin.mikhail.ol@gmail.com>
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;
}