mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-17 12:41:32 +00:00
ext4: Fix memory leak in case of failure
temp_ptr should always be freed, even if the function is left via goto fail. Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de> Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
This commit is contained in:
parent
0ceef3d371
commit
87a40b6e03
1 changed files with 2 additions and 2 deletions
|
@ -974,7 +974,6 @@ int ext4fs_write(const char *fname, unsigned char *buffer,
|
|||
sizeof(struct ext2_inode));
|
||||
if (ext4fs_put_metadata(temp_ptr, parent_itable_blkno))
|
||||
goto fail;
|
||||
free(temp_ptr);
|
||||
} else {
|
||||
/*
|
||||
* If parent and child fall in same inode table block
|
||||
|
@ -985,7 +984,6 @@ int ext4fs_write(const char *fname, unsigned char *buffer,
|
|||
gd_index--;
|
||||
if (ext4fs_put_metadata(temp_ptr, itable_blkno))
|
||||
goto fail;
|
||||
free(temp_ptr);
|
||||
}
|
||||
ext4fs_update();
|
||||
ext4fs_deinit();
|
||||
|
@ -996,6 +994,7 @@ int ext4fs_write(const char *fname, unsigned char *buffer,
|
|||
fs->curr_inode_no = 0;
|
||||
free(inode_buffer);
|
||||
free(g_parent_inode);
|
||||
free(temp_ptr);
|
||||
g_parent_inode = NULL;
|
||||
|
||||
return 0;
|
||||
|
@ -1003,6 +1002,7 @@ fail:
|
|||
ext4fs_deinit();
|
||||
free(inode_buffer);
|
||||
free(g_parent_inode);
|
||||
free(temp_ptr);
|
||||
g_parent_inode = NULL;
|
||||
|
||||
return -1;
|
||||
|
|
Loading…
Add table
Reference in a new issue