mirror of
https://github.com/torvalds/linux.git
synced 2026-06-09 15:12:59 +02:00
UBIFS: fix a rare memory leak in ro to rw remounting path
commit eaeee242c5 upstream.
When re-mounting from R/O mode to R/W mode and the LEB count in the superblock
is not up-to date, because for the underlying UBI volume became larger, we
re-write the superblock. We allocate RAM for these purposes, but never free it.
So this is a memory leak, although very rare one.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
ee4a3a8203
commit
b5914dec1c
|
|
@ -474,7 +474,8 @@ static int validate_sb(struct ubifs_info *c, struct ubifs_sb_node *sup)
|
|||
* @c: UBIFS file-system description object
|
||||
*
|
||||
* This function returns a pointer to the superblock node or a negative error
|
||||
* code.
|
||||
* code. Note, the user of this function is responsible of kfree()'ing the
|
||||
* returned superblock buffer.
|
||||
*/
|
||||
struct ubifs_sb_node *ubifs_read_sb_node(struct ubifs_info *c)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1550,6 +1550,7 @@ static int ubifs_remount_rw(struct ubifs_info *c)
|
|||
}
|
||||
sup->leb_cnt = cpu_to_le32(c->leb_cnt);
|
||||
err = ubifs_write_sb_node(c, sup);
|
||||
kfree(sup);
|
||||
if (err)
|
||||
goto out;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user