2020-03-23 12:59:12

by Qiujun Huang

[permalink] [raw]
Subject: [PATCH] minix: Fix NULL dereference in alloc_branch()

Need to check the return value of sb_getblk.

Reported-by: [email protected]
Signed-off-by: Qiujun Huang <[email protected]>
---
fs/minix/itree_common.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/fs/minix/itree_common.c b/fs/minix/itree_common.c
index 043c3fdbc8e7..6edb0f11e8a0 100644
--- a/fs/minix/itree_common.c
+++ b/fs/minix/itree_common.c
@@ -85,6 +85,10 @@ static int alloc_branch(struct inode *inode,
break;
branch[n].key = cpu_to_block(nr);
bh = sb_getblk(inode->i_sb, parent);
+ if (!bh) {
+ minix_free_block(inode, block_to_cpu(branch[n].key));
+ break;
+ }
lock_buffer(bh);
memset(bh->b_data, 0, bh->b_size);
branch[n].bh = bh;
--
2.17.1