Commit ac4d6888 authored by Chandra Seetharaman's avatar Chandra Seetharaman Committed by Alex Elder
Browse files

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: default avatarChandra Seetharaman <sekharan@us.ibm.com>
Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
parent 9e978d8f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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,
+2 −0
Original line number Diff line number Diff line
@@ -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",