summaryrefslogtreecommitdiffstats
path: root/fs/ubifs
diff options
context:
space:
mode:
authorRichard Weinberger <richard@nod.at>2018-06-12 20:49:45 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-09-09 20:01:24 +0200
commit0d1694b185ca2e7d4b0491ea2ce135b391878eea (patch)
tree29dd937dbb0693a10d765a04a950332ca9290e77 /fs/ubifs
parenta56a15432ac808d63d7c3b24fa81dfa6afbab067 (diff)
downloadlinux-stable-0d1694b185ca2e7d4b0491ea2ce135b391878eea.tar.gz
linux-stable-0d1694b185ca2e7d4b0491ea2ce135b391878eea.tar.bz2
linux-stable-0d1694b185ca2e7d4b0491ea2ce135b391878eea.zip
ubifs: Fix memory leak in lprobs self-check
commit eef19816ada3abd56d9f20c88794cc2fea83ebb2 upstream. Allocate the buffer after we return early. Otherwise memory is being leaked. Cc: <stable@vger.kernel.org> Fixes: 1e51764a3c2a ("UBIFS: add new flash file system") Signed-off-by: Richard Weinberger <richard@nod.at> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/ubifs')
-rw-r--r--fs/ubifs/lprops.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/ubifs/lprops.c b/fs/ubifs/lprops.c
index 6c3a1abd0e22..780a436d8c45 100644
--- a/fs/ubifs/lprops.c
+++ b/fs/ubifs/lprops.c
@@ -1091,10 +1091,6 @@ static int scan_check_cb(struct ubifs_info *c,
}
}
- buf = __vmalloc(c->leb_size, GFP_NOFS, PAGE_KERNEL);
- if (!buf)
- return -ENOMEM;
-
/*
* After an unclean unmount, empty and freeable LEBs
* may contain garbage - do not scan them.
@@ -1113,6 +1109,10 @@ static int scan_check_cb(struct ubifs_info *c,
return LPT_SCAN_CONTINUE;
}
+ buf = __vmalloc(c->leb_size, GFP_NOFS, PAGE_KERNEL);
+ if (!buf)
+ return -ENOMEM;
+
sleb = ubifs_scan(c, lnum, 0, buf, 0);
if (IS_ERR(sleb)) {
ret = PTR_ERR(sleb);