[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20181115222558.19189-1-garrmcnu@gmail.com>
Date: Thu, 15 Nov 2018 22:25:58 +0000
From: Garry McNulty <garrmcnu@...il.com>
To: linux-mtd@...ts.infradead.org
Cc: richard@....at, dedekind1@...il.com, adrian.hunter@...el.com,
s.hauer@...gutronix.de, linux-kernel@...r.kernel.org,
Garry McNulty <garrmcnu@...il.com>
Subject: [PATCH v2] ubifs: fix memory leak on error condition
If the call to ubifs_read_nnode() fails in ubifs_lpt_calc_hash() an
error is returned without freeing the memory allocated to 'buf'.
Read and check the root node before allocating the buffer.
Detected by CoverityScan, CID 1441025 ("Resource leak")
Signed-off-by: Garry McNulty <garrmcnu@...il.com>
---
fs/ubifs/lpt.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/fs/ubifs/lpt.c b/fs/ubifs/lpt.c
index d1d5e96350dd..b0c5f06128b5 100644
--- a/fs/ubifs/lpt.c
+++ b/fs/ubifs/lpt.c
@@ -1675,6 +1675,12 @@ int ubifs_lpt_calc_hash(struct ubifs_info *c, u8 *hash)
if (!ubifs_authenticated(c))
return 0;
+ if (!c->nroot) {
+ err = ubifs_read_nnode(c, NULL, 0);
+ if (err)
+ return err;
+ }
+
desc = ubifs_hash_get_desc(c);
if (IS_ERR(desc))
return PTR_ERR(desc);
@@ -1685,12 +1691,6 @@ int ubifs_lpt_calc_hash(struct ubifs_info *c, u8 *hash)
goto out;
}
- if (!c->nroot) {
- err = ubifs_read_nnode(c, NULL, 0);
- if (err)
- return err;
- }
-
cnode = (struct ubifs_cnode *)c->nroot;
while (cnode) {
--
2.14.5
Powered by blists - more mailing lists