]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
xfs: fix memcpy fortify errors in BUI log format copying
authorDarrick J. Wong <djwong@kernel.org>
Thu, 20 Oct 2022 23:17:41 +0000 (16:17 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Mon, 31 Oct 2022 15:58:19 +0000 (08:58 -0700)
commita38ebce1da271f480e47c3def4f810c6106b74a1
tree9207f5c9adca79346bc6102693bfc0856adef0cb
parent59da7ff49d67a1b63b1b81c7f53dcb6a84cdad2b
xfs: fix memcpy fortify errors in BUI log format copying

Starting in 6.1, CONFIG_FORTIFY_SOURCE checks the length parameter of
memcpy.  Unfortunately, it doesn't handle flex arrays correctly:

------------[ cut here ]------------
memcpy: detected field-spanning write (size 48) of single field "dst_bui_fmt" at fs/xfs/xfs_bmap_item.c:628 (size 16)

Fix this by refactoring the xfs_bui_copy_format function to handle the
copying of the head and the flex array members separately.  While we're
at it, fix a minor validation deficiency in the recovery function.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
fs/xfs/xfs_bmap_item.c
fs/xfs/xfs_ondisk.h