Darrick J. Wong 371baf5c97 xfs: convert flex-array declarations in struct xfs_attrlist*
As of 6.5-rc1, UBSAN trips over the attrlist ioctl definitions using an
array length of 1 to pretend to be a flex array.  Kernel compilers have
to support unbounded array declarations, so let's correct this.  This
may cause friction with userspace header declarations, but suck is life.

================================================================================
UBSAN: array-index-out-of-bounds in fs/xfs/xfs_ioctl.c:345:18
index 1 is out of range for type '__s32 [1]'
Call Trace:
 <TASK>
 dump_stack_lvl+0x33/0x50
 __ubsan_handle_out_of_bounds+0x9c/0xd0
 xfs_ioc_attr_put_listent+0x413/0x420 [xfs 4a986a89a77bb77402ab8a87a37da369ef6a3f09]
 xfs_attr_list_ilocked+0x170/0x850 [xfs 4a986a89a77bb77402ab8a87a37da369ef6a3f09]
 xfs_attr_list+0xb7/0x120 [xfs 4a986a89a77bb77402ab8a87a37da369ef6a3f09]
 xfs_ioc_attr_list+0x13b/0x2e0 [xfs 4a986a89a77bb77402ab8a87a37da369ef6a3f09]
 xfs_attrlist_by_handle+0xab/0x120 [xfs 4a986a89a77bb77402ab8a87a37da369ef6a3f09]
 xfs_file_ioctl+0x1ff/0x15e0 [xfs 4a986a89a77bb77402ab8a87a37da369ef6a3f09]
 vfs_ioctl+0x1f/0x60

The kernel and xfsprogs code that uses these structures will not have
problems, but the long tail of external user programs might.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Kees Cook <keescook@chromium.org>
2023-07-17 08:48:56 -07:00
..
2023-05-24 08:42:16 -06:00
2023-06-26 10:14:36 -07:00
2023-05-24 08:42:16 -06:00
2023-06-29 13:27:50 -07:00
\n
2023-06-29 13:39:51 -07:00
\n
2023-06-29 13:39:51 -07:00
2023-07-05 14:14:37 -07:00
2023-07-01 08:48:02 -07:00
2023-07-04 11:45:16 -07:00
2023-06-27 17:10:27 -07:00
2023-07-02 11:14:54 -07:00
2023-06-26 11:52:12 -07:00
2023-06-29 13:10:32 -07:00
2023-07-03 12:56:23 -07:00
2023-07-01 14:38:25 -07:00
2023-07-01 14:38:25 -07:00
2023-06-30 21:48:44 -07:00
2023-06-26 12:47:20 -07:00
2023-07-07 14:59:38 -07:00
2023-07-06 10:06:04 -07:00
2023-06-27 21:21:32 -07:00
2023-03-14 12:56:30 -06:00
2023-06-05 16:50:30 +02:00
2023-06-15 13:37:53 +02:00
2023-06-26 11:52:12 -07:00
\n
2023-06-29 13:39:51 -07:00
2023-06-27 21:24:18 -07:00
2023-03-30 08:51:48 +02:00
2023-06-28 20:35:21 -07:00
\n
2023-06-29 13:39:51 -07:00
2023-06-26 09:50:21 -07:00
2023-05-17 09:16:59 +02:00
2023-06-26 09:50:21 -07:00
\n
2023-06-29 13:31:44 -07:00
2023-02-20 11:53:11 -08:00
2023-06-26 10:14:36 -07:00
2023-06-26 12:47:20 -07:00
2023-01-19 09:24:30 +01:00
2023-07-04 10:20:29 +02:00
2023-06-26 10:27:04 -07:00
\n
2023-06-29 13:31:44 -07:00
2023-05-19 04:30:22 +02:00
2023-05-19 04:30:22 +02:00
2023-03-06 09:59:20 +01:00
2023-06-28 16:43:10 -07:00
2023-02-20 11:53:11 -08:00
\n
2023-06-29 13:39:51 -07:00
2023-02-20 11:53:11 -08:00