Message ID | 20230528012516.427126-1-princekumarmaurya06@gmail.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | Null check to prevent null-ptr-deref bug | expand |
On Sat, May 27, 2023 at 06:25:16PM -0700, Prince Kumar Maurya wrote: > sb_getblk(inode->i_sb, parent) return a null ptr and taking lock on that leads to the null-ptr-deref bug. Please wrap your changelog comments at 72 columns. > Signed-off-by: Prince Kumar Maurya <princekumarmaurya06@gmail.com> > --- > fs/sysv/itree.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/fs/sysv/itree.c b/fs/sysv/itree.c > index b22764fe669c..3a6b66e719fd 100644 > --- a/fs/sysv/itree.c > +++ b/fs/sysv/itree.c > @@ -145,6 +145,8 @@ static int alloc_branch(struct inode *inode, > */ > parent = block_to_cpu(SYSV_SB(inode->i_sb), branch[n-1].key); > bh = sb_getblk(inode->i_sb, parent); > + if (!bh) > + break; How have you tested this? Have you reproduced this failure and has this patch resolved the issue? This function should never really fail in normal operation, so it's odd that you were able to hit this somehow. thanks, greg k-h
diff --git a/fs/sysv/itree.c b/fs/sysv/itree.c index b22764fe669c..3a6b66e719fd 100644 --- a/fs/sysv/itree.c +++ b/fs/sysv/itree.c @@ -145,6 +145,8 @@ static int alloc_branch(struct inode *inode, */ parent = block_to_cpu(SYSV_SB(inode->i_sb), branch[n-1].key); bh = sb_getblk(inode->i_sb, parent); + if (!bh) + break; lock_buffer(bh); memset(bh->b_data, 0, blocksize); branch[n].bh = bh;
sb_getblk(inode->i_sb, parent) return a null ptr and taking lock on that leads to the null-ptr-deref bug. Signed-off-by: Prince Kumar Maurya <princekumarmaurya06@gmail.com> --- fs/sysv/itree.c | 2 ++ 1 file changed, 2 insertions(+)