xfs: don't send null bp to xfs_trans_brelse()
authorEric Sandeen <sandeen@sandeen.net>
Wed, 1 Oct 2014 23:23:49 +0000 (09:23 +1000)
committerDave Chinner <david@fromorbit.com>
Wed, 1 Oct 2014 23:23:49 +0000 (09:23 +1000)
In this case, if bp is NULL, error is set, and we send a
NULL bp to xfs_trans_brelse, which will try to dereference it.

Test whether we actually have a buffer before we try to
free it.

Coverity spotted this.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/libxfs/xfs_da_btree.c

index 2c42ae28d027594aa456e15572094c24f9aac035..fd827530afec27146861a1416c74d4769b2a32de 100644 (file)
@@ -2563,7 +2563,8 @@ xfs_da_get_buf(
                                    mapp, nmap, 0);
        error = bp ? bp->b_error : -EIO;
        if (error) {
-               xfs_trans_brelse(trans, bp);
+               if (bp)
+                       xfs_trans_brelse(trans, bp);
                goto out_free;
        }