linux/fs/xfs/scrub
Jia-Ju Bai afa1d96d14 xfs: Fix possible null-pointer dereferences in xchk_da_btree_block_check_sibling()
In xchk_da_btree_block_check_sibling(), there is an if statement on
line 274 to check whether ds->state->altpath.blk[level].bp is NULL:
    if (ds->state->altpath.blk[level].bp)

When ds->state->altpath.blk[level].bp is NULL, it is used on line 281:
    xfs_trans_brelse(..., ds->state->altpath.blk[level].bp);
        struct xfs_buf_log_item *bip = bp->b_log_item;
        ASSERT(bp->b_transp == tp);

Thus, possible null-pointer dereferences may occur.

To fix these bugs, ds->state->altpath.blk[level].bp is checked before
being used.

These bugs are found by a static analysis tool STCheck written by us.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2019-07-30 11:28:20 -07:00
..
agheader_repair.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
agheader.c xfs: create iterator error codes 2019-07-02 09:40:05 -07:00
alloc.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
attr.c xfs: online scrub needn't bother zeroing its temporary buffer 2019-07-05 10:29:56 -07:00
attr.h xfs: only allocate memory for scrubbing attributes when we need it 2019-07-05 10:29:56 -07:00
bitmap.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
bitmap.h xfs: repair the AGFL 2018-08-10 11:44:31 -07:00
bmap.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
btree.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
btree.h xfs: const-ify xfs_owner_info arguments 2018-12-12 08:47:16 -08:00
common.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
common.h xfs: add online scrub for superblock counters 2019-04-30 08:19:13 -07:00
dabtree.c xfs: Fix possible null-pointer dereferences in xchk_da_btree_block_check_sibling() 2019-07-30 11:28:20 -07:00
dabtree.h xfs: fix indentation and other whitespace problems in scrub/repair 2018-07-23 09:08:01 -07:00
dir.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
fscounters.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
health.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
health.h xfs: scrub should only cross-reference with healthy btrees 2019-04-16 10:01:57 -07:00
ialloc.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
inode.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
parent.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
quota.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
refcount.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
repair.c xfs: create iterator error codes 2019-07-02 09:40:05 -07:00
repair.h xfs: hoist the already_fixed variable to the scrub context 2019-04-16 10:01:57 -07:00
rmap.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
rtbitmap.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
scrub.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
scrub.h xfs: add online scrub for superblock counters 2019-04-30 08:19:13 -07:00
symlink.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
trace.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
trace.h xfs: add online scrub for superblock counters 2019-04-30 08:19:13 -07:00
xfs_scrub.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00