Message ID | 20181029232146.21262-1-colin.king@canonical.com |
---|---|
State | Changes Requested |
Delegated to: | Richard Weinberger |
Headers | show |
Series | [next] ubifs: authentication: fix memory leak on error exit path | expand |
Am Dienstag, 30. Oktober 2018, 00:21:46 CET schrieb Colin King: > From: Colin Ian King <colin.king@canonical.com> > > Currently a failure when calling ubifs_read_nnode results in a leak > of desc and buf because of a direct return. Fix this by exiting via > label 'out' that performs the necessary free'ing of the resources. > > Fixes: a1dc58140f7e ("ubifs: authentication: Authenticate LPT") > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > fs/ubifs/lpt.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/ubifs/lpt.c b/fs/ubifs/lpt.c > index d1d5e96350dd..c162459a1e02 100644 > --- a/fs/ubifs/lpt.c > +++ b/fs/ubifs/lpt.c > @@ -1688,7 +1688,7 @@ int ubifs_lpt_calc_hash(struct ubifs_info *c, u8 *hash) > if (!c->nroot) { > err = ubifs_read_nnode(c, NULL, 0); > if (err) > - return err; > + goto out; IMHO a better fix would be reading the root node before allocating these buffers. Thanks, //richard
diff --git a/fs/ubifs/lpt.c b/fs/ubifs/lpt.c index d1d5e96350dd..c162459a1e02 100644 --- a/fs/ubifs/lpt.c +++ b/fs/ubifs/lpt.c @@ -1688,7 +1688,7 @@ int ubifs_lpt_calc_hash(struct ubifs_info *c, u8 *hash) if (!c->nroot) { err = ubifs_read_nnode(c, NULL, 0); if (err) - return err; + goto out; } cnode = (struct ubifs_cnode *)c->nroot;