diff options
author | Chandra Seetharaman <sekharan@us.ibm.com> | 2011-08-03 02:18:29 +0000 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2011-08-12 13:39:29 -0500 |
commit | ac4d6888b21a8be373f3e06f1d4011fbe2bbbeac (patch) | |
tree | 6a39e3be9bcf99cddc0ce0b0ed15aac794b527f8 /fs/xfs/xfs_log_recover.c | |
parent | 9e978d8f7db1c5de7cdc6450a8ca208db3b95f84 (diff) | |
download | talos-obmc-linux-ac4d6888b21a8be373f3e06f1d4011fbe2bbbeac.tar.gz talos-obmc-linux-ac4d6888b21a8be373f3e06f1d4011fbe2bbbeac.zip |
xfs: Check the return value of xfs_buf_read() for NULL
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>
Diffstat (limited to 'fs/xfs/xfs_log_recover.c')
-rw-r--r-- | fs/xfs/xfs_log_recover.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 1076b7effcdc..b9afff8a1be2 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -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, @@ -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, |