mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-22 12:54:37 +00:00
ext4: Fix memory leak of journal buffer if block is updated multiple times
If the same block is updated multiple times in a row during a single file system operation, gd_index is decremented to use the same journal entry again. Avoid loosing the already allocated buffer. Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
This commit is contained in:
parent
de9e831675
commit
b1edcf0d80
1 changed files with 5 additions and 1 deletions
|
@ -190,7 +190,11 @@ int ext4fs_put_metadata(char *metadata_buffer, uint32_t blknr)
|
||||||
printf("Invalid input arguments %s\n", __func__);
|
printf("Invalid input arguments %s\n", __func__);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
if (dirty_block_ptr[gd_index]->buf)
|
||||||
|
assert(dirty_block_ptr[gd_index]->blknr == blknr);
|
||||||
|
else
|
||||||
dirty_block_ptr[gd_index]->buf = zalloc(fs->blksz);
|
dirty_block_ptr[gd_index]->buf = zalloc(fs->blksz);
|
||||||
|
|
||||||
if (!dirty_block_ptr[gd_index]->buf)
|
if (!dirty_block_ptr[gd_index]->buf)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
memcpy(dirty_block_ptr[gd_index]->buf, metadata_buffer, fs->blksz);
|
memcpy(dirty_block_ptr[gd_index]->buf, metadata_buffer, fs->blksz);
|
||||||
|
|
Loading…
Add table
Reference in a new issue