mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
Revert "ubifs: dirty_cow_znode: Fix memleak in error handling path"
This reverts commit122deabfe1
(ubifs: dirty_cow_znode: Fix memleak in error handling path). After commit122deabfe1
applied, if insert_old_idx() failed, old index neither exists in TNC nor in old-index tree. Which means that old index node could be overwritten in layout_leb_in_gaps(), then ubifs image will be corrupted in power-cut. Fixes:122deabfe1
(ubifs: dirty_cow_znode: Fix memleak ... path) Cc: stable@vger.kernel.org Signed-off-by: Zhihao Cheng <chengzhihao1@huawei.com> Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
parent
3a36d20e01
commit
7d01cb27f6
@ -267,18 +267,11 @@ static struct ubifs_znode *dirty_cow_znode(struct ubifs_info *c,
|
||||
if (zbr->len) {
|
||||
err = insert_old_idx(c, zbr->lnum, zbr->offs);
|
||||
if (unlikely(err))
|
||||
/*
|
||||
* Obsolete znodes will be freed by tnc_destroy_cnext()
|
||||
* or free_obsolete_znodes(), copied up znodes should
|
||||
* be added back to tnc and freed by
|
||||
* ubifs_destroy_tnc_subtree().
|
||||
*/
|
||||
goto out;
|
||||
return ERR_PTR(err);
|
||||
err = add_idx_dirt(c, zbr->lnum, zbr->len);
|
||||
} else
|
||||
err = 0;
|
||||
|
||||
out:
|
||||
zbr->znode = zn;
|
||||
zbr->lnum = 0;
|
||||
zbr->offs = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user