Skip to content

Commit

Permalink
xfs: Check the return value of xfs_buf_read() for NULL
Browse files Browse the repository at this point in the history
Check the return value of xfs_buf_read() for NULL and return ENOMEM
if it is NULL.  This is necessary in a few spots to avoid subsequent
code blindly dereferencing the null buffer pointer.

Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com>
Signed-off-by: Alex Elder <aelder@sgi.com>
  • Loading branch information
Chandra Seetharaman authored and Alex Elder committed Aug 12, 2011
1 parent 9e978d8 commit ac4d688
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 0 deletions.
6 changes: 6 additions & 0 deletions fs/xfs/xfs_log_recover.c
Original file line number Diff line number Diff line change
Expand Up @@ -2131,6 +2131,8 @@ xlog_recover_buffer_pass2(

bp = xfs_buf_read(mp->m_ddev_targp, buf_f->blf_blkno, buf_f->blf_len,
buf_flags);
if (!bp)
return XFS_ERROR(ENOMEM);
error = xfs_buf_geterror(bp);
if (error) {
xfs_ioerror_alert("xlog_recover_do..(read#1)", mp,
Expand Down Expand Up @@ -2222,6 +2224,10 @@ xlog_recover_inode_pass2(

bp = xfs_buf_read(mp->m_ddev_targp, in_f->ilf_blkno, in_f->ilf_len,
XBF_LOCK);
if (!bp) {
error = ENOMEM;
goto error;
}
error = xfs_buf_geterror(bp);
if (error) {
xfs_ioerror_alert("xlog_recover_do..(read#2)", mp,
Expand Down
2 changes: 2 additions & 0 deletions fs/xfs/xfs_vnodeops.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ xfs_readlink_bmap(

bp = xfs_buf_read(mp->m_ddev_targp, d, BTOBB(byte_cnt),
XBF_LOCK | XBF_MAPPED | XBF_DONT_BLOCK);
if (!bp)
return XFS_ERROR(ENOMEM);
error = xfs_buf_geterror(bp);
if (error) {
xfs_ioerror_alert("xfs_readlink",
Expand Down

0 comments on commit ac4d688

Please sign in to comment.