Darrick J. Wong
6ab959f129
xfs: don't ever return a stale pointer from __xfs_dir3_free_read
...
[ Upstream commit 1cb5deb5bc095c070c09a4540c45f9c9ba24be43 ]
If we decide that a directory free block is corrupt, we must take care
not to leak a buffer pointer to the caller. After xfs_trans_brelse
returns, the buffer can be freed or reused, which means that we have to
set *bpp back to NULL.
Callers are supposed to notice the nonzero return value and not use the
buffer pointer, but we should code more defensively, even if all current
callers handle this situation correctly.
Fixes: de14c5f541 ("xfs: verify free block header fields")
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-10-01 13:14:37 +02:00
..
xfs_ag.c
xfs: factor the ag length extension code into libxfs
2018-05-15 18:12:51 -07:00
xfs_ag.h
xfs: factor the ag length extension code into libxfs
2018-05-15 18:12:51 -07:00
xfs_ag_resv.c
xfs: rename m_inotbt_nores to m_finobt_nores
2019-07-26 09:14:28 +02:00
xfs_ag_resv.h
xfs: pass transaction lock while setting up agresv on cyclic metadata
2018-07-29 22:37:08 -07:00
xfs_alloc.c
xfs: add agf freeblocks verify in xfs_agf_verify
2020-06-30 23:17:19 -04:00
xfs_alloc.h
xfs: remove xfs_alloc_arg firstblock field
2018-07-11 22:26:30 -07:00
xfs_alloc_btree.c
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_alloc_btree.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_attr.c
xfs: always rejoin held resources during defer roll
2019-08-29 08:28:58 +02:00
xfs_attr.h
xfs: always rejoin held resources during defer roll
2019-08-29 08:28:58 +02:00
xfs_attr_leaf.c
xfs: fix attr leaf header freemap.size underflow
2020-10-01 13:14:28 +02:00
xfs_attr_leaf.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_attr_remote.c
xfs: remove last of unnecessary xfs_defer_cancel() callers
2018-09-29 13:41:58 +10:00
xfs_attr_remote.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_attr_sf.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_bit.c
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_bit.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_bmap.c
xfs: fix xfs_bmap_validate_extent_raw when checking attr fork of rt files
2020-09-09 19:04:27 +02:00
xfs_bmap.h
xfs: Add attibute set and helper functions
2019-08-29 08:28:58 +02:00
xfs_bmap_btree.c
xfs: pass transaction to xfs_defer_add()
2018-08-02 23:05:14 -07:00
xfs_bmap_btree.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_btree.c
xfs: fix inverted return from xfs_btree_sblock_verify_crc
2019-02-12 19:47:21 +01:00
xfs_btree.h
xfs: fold dfops into the transaction
2018-08-02 23:05:14 -07:00
xfs_cksum.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
xfs_da_btree.c
xfs: check da node magic in _node_lookup_int
2018-08-01 07:42:43 -07:00
xfs_da_btree.h
xfs: fold dfops into the transaction
2018-08-02 23:05:14 -07:00
xfs_da_format.c
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_da_format.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_defer.c
xfs: always rejoin held resources during defer roll
2019-08-29 08:28:58 +02:00
xfs_defer.h
xfs: fold dfops into the transaction
2018-08-02 23:05:14 -07:00
xfs_dir2.c
xfs: fold dfops into the transaction
2018-08-02 23:05:14 -07:00
xfs_dir2.h
xfs: fold dfops into the transaction
2018-08-02 23:05:14 -07:00
xfs_dir2_block.c
xfs: clean up MIN/MAX
2018-06-08 10:07:52 -07:00
xfs_dir2_data.c
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_dir2_leaf.c
xfs: clean up MIN/MAX
2018-06-08 10:07:52 -07:00
xfs_dir2_node.c
xfs: don't ever return a stale pointer from __xfs_dir3_free_read
2020-10-01 13:14:37 +02:00
xfs_dir2_priv.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_dir2_sf.c
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_dquot_buf.c
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_errortag.h
xfs: force summary counter recalc at next mount
2018-07-23 09:08:01 -07:00
xfs_format.h
xfs: don't treat unknown di_flags2 as corruption in scrub
2018-09-29 13:49:00 +10:00
xfs_fs.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_ialloc.c
xfs: pass transaction to xfs_defer_add()
2018-08-02 23:05:14 -07:00
xfs_ialloc.h
xfs: remove dfops parameter from ifree call stack
2018-07-11 22:26:07 -07:00
xfs_ialloc_btree.c
xfs: rename m_inotbt_nores to m_finobt_nores
2019-07-26 09:14:28 +02:00
xfs_ialloc_btree.h
xfs: pass transaction lock while setting up agresv on cyclic metadata
2018-07-29 22:37:08 -07:00
xfs_iext_tree.c
xfs: use WRITE_ONCE to update if_seq
2018-08-07 10:57:12 -07:00
xfs_inode_buf.c
xfs: validate inode di_forkoff
2018-09-29 13:50:13 +10:00
xfs_inode_buf.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_inode_fork.c
xfs: remove the xfs_ifork_t typedef
2018-07-30 07:57:48 -07:00
xfs_inode_fork.h
xfs: maintain a sequence count for inode fork manipulations
2018-07-31 13:18:09 -07:00
xfs_log_format.h
xfs: refactor unmount record write
2018-07-23 09:08:01 -07:00
xfs_log_recover.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_log_rlimit.c
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_quota_defs.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_refcount.c
xfs: pass transaction to xfs_defer_add()
2018-08-02 23:05:14 -07:00
xfs_refcount.h
xfs: pass transaction to xfs_defer_add()
2018-08-02 23:05:14 -07:00
xfs_refcount_btree.c
xfs: pass transaction lock while setting up agresv on cyclic metadata
2018-07-29 22:37:08 -07:00
xfs_refcount_btree.h
xfs: pass transaction lock while setting up agresv on cyclic metadata
2018-07-29 22:37:08 -07:00
xfs_rmap.c
xfs: pass transaction to xfs_defer_add()
2018-08-02 23:05:14 -07:00
xfs_rmap.h
xfs: pass transaction to xfs_defer_add()
2018-08-02 23:05:14 -07:00
xfs_rmap_btree.c
xfs: pass transaction lock while setting up agresv on cyclic metadata
2018-07-29 22:37:08 -07:00
xfs_rmap_btree.h
xfs: pass transaction lock while setting up agresv on cyclic metadata
2018-07-29 22:37:08 -07:00
xfs_rtbitmap.c
xfs: fix off-by-one error in xfs_rtalloc_query_range
2018-06-24 11:56:36 -07:00
xfs_sb.c
xfs: only validate summary counts on primary superblock
2018-08-03 08:17:35 -07:00
xfs_sb.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_shared.h
xfs: replace dop_low with transaction flag
2018-08-02 23:05:13 -07:00
xfs_symlink_remote.c
xfs: zero length symlinks are not valid
2019-12-05 09:20:02 +01:00
xfs_trans_resv.c
xfs: fix log reservation overflows when allocating large rt extents
2020-10-01 13:14:29 +02:00
xfs_trans_resv.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_trans_space.h
xfs: convert to SPDX license tags
2018-06-06 14:17:53 -07:00
xfs_types.c
xfs: verify icount in superblock write
2018-07-31 13:18:09 -07:00
xfs_types.h
xfs: verify icount in superblock write
2018-07-31 13:18:09 -07:00