diff options
author | Wenwen Wang <wenwen@cs.uga.edu> | 2019-08-19 23:03:46 -0400 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2019-09-15 16:11:18 -0400 |
commit | ce4d8b16e64d062f1c6271a0068dbbbba2dee620 (patch) | |
tree | 4ac39ccaa98c63ebfdd0fc85ec415ba0fa84f510 | |
parent | 8615b94f029a4fb4306d3512aaf1c45f5fc24d4b (diff) |
ubifs: Fix memory leak in read_znode() error path
In read_znode(), the indexing node 'idx' is allocated by kmalloc().
However, it is not deallocated in the following execution if
ubifs_node_check_hash() fails, leading to a memory leak bug. To fix this
issue, free 'idx' before returning the error.
Fixes: 16a26b20d2af ("ubifs: authentication: Add hashes to index nodes")
Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
Signed-off-by: Richard Weinberger <richard@nod.at>
-rw-r--r-- | fs/ubifs/tnc_misc.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ubifs/tnc_misc.c b/fs/ubifs/tnc_misc.c index 6f293f662d98..49cb34c3f324 100644 --- a/fs/ubifs/tnc_misc.c +++ b/fs/ubifs/tnc_misc.c | |||
@@ -284,6 +284,7 @@ static int read_znode(struct ubifs_info *c, struct ubifs_zbranch *zzbr, | |||
284 | err = ubifs_node_check_hash(c, idx, zzbr->hash); | 284 | err = ubifs_node_check_hash(c, idx, zzbr->hash); |
285 | if (err) { | 285 | if (err) { |
286 | ubifs_bad_hash(c, idx, zzbr->hash, lnum, offs); | 286 | ubifs_bad_hash(c, idx, zzbr->hash, lnum, offs); |
287 | kfree(idx); | ||
287 | return err; | 288 | return err; |
288 | } | 289 | } |
289 | 290 | ||