Re: [PATCH RFC 5/7] fs/xfs: support `DISABLE_FS_CSUM_VERIFICATION` config option

Darrick J. Wong
2022-10-14T15:44:21Z

On Fri, Oct 14, 2022 at 08:48:35AM +0000, Hrutvik Kanabar wrote:
> From: Hrutvik Kanabar <hrutvik@google.com>
>
> When `DISABLE_FS_CSUM_VERIFICATION` is enabled, return truthy value for
> `xfs_verify_cksum`, which is the key function implementing checksum
> verification for XFS.
>
> Signed-off-by: Hrutvik Kanabar <hrutvik@google.com>

NAK, we're not going to break XFS for the sake of automated fuzz tools.

You'll have to adapt your fuzzing tools to rewrite the block header
checksums, like the existing xfs fuzz testing framework does. See
the xfs_db 'fuzz -d' command and the relevant fstests.

--D

> ---
> fs/xfs/libxfs/xfs_cksum.h | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/fs/xfs/libxfs/xfs_cksum.h b/fs/xfs/libxfs/xfs_cksum.h
> index 999a290cfd72..ba55b1afa382 100644
> --- a/fs/xfs/libxfs/xfs_cksum.h
> +++ b/fs/xfs/libxfs/xfs_cksum.h
> @@ -76,7 +76,10 @@ xfs_verify_cksum(char *buffer, size_t length, unsigned long cksum_offset)
> {
> uint32_t crc = xfs_start_cksum_safe(buffer, length, cksum_offset);
>
> - return *(__le32 *)(buffer + cksum_offset) == xfs_end_cksum(crc);
> + if (IS_ENABLED(CONFIG_DISABLE_FS_CSUM_VERIFICATION))
> + return 1;
> + else
> + return *(__le32 *)(buffer + cksum_offset) == xfs_end_cksum(crc);
> }
>
> #endif /* _XFS_CKSUM_H */
> --
> 2.38.0.413.g74048e4d9e-goog
>