| From 5e5db3727602d53a16da62581b87aad5f1c6cb90 Mon Sep 17 00:00:00 2001 |
| From: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> |
| Date: Fri, 25 Mar 2011 19:09:54 +0200 |
| Subject: [PATCH] UBIFS: fix oops on error path in read_pnode |
| |
| commit 54acbaaa523ca0bd284a18f67ad213c379679e86 upstream. |
| |
| Thanks to coverity which spotted that UBIFS will oops if 'kmalloc()' |
| in 'read_pnode()' fails and we dereference a NULL 'pnode' pointer |
| when we 'goto out'. |
| |
| Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/fs/ubifs/lpt.c b/fs/ubifs/lpt.c |
| index ad7f67b..ead230e 100644 |
| --- a/fs/ubifs/lpt.c |
| +++ b/fs/ubifs/lpt.c |
| @@ -1270,10 +1270,9 @@ static int read_pnode(struct ubifs_info *c, struct ubifs_nnode *parent, int iip) |
| lnum = branch->lnum; |
| offs = branch->offs; |
| pnode = kzalloc(sizeof(struct ubifs_pnode), GFP_NOFS); |
| - if (!pnode) { |
| - err = -ENOMEM; |
| - goto out; |
| - } |
| + if (!pnode) |
| + return -ENOMEM; |
| + |
| if (lnum == 0) { |
| /* |
| * This pnode was not written which just means that the LEB |
| -- |
| 1.7.4.4 |
| |