uapi: target: Replace fake flex-array with flexible-array member
Subsystems (3)
PATCH 1/1 uapi: target: Replace fake flex-array with flexible-array member
Zero-length arrays as fake flexible arrays are deprecated and we are moving towards adopting C99 flexible-array members instead.
Address the following warning found with GCC-13 and
-fstrict-flex-arrays=3 enabled:
CC drivers/target/target_core_user.odrivers/target/target_core_user.c: In function ‘queue_cmd_ring’:drivers/target/target_core_user.c:1096:15: warning: array subscript 0 is outside array bounds of ‘struct iovec[0]’ [-Warray-bounds=]
1096 | iov = &entry->req.iov[0];
| ^~~~~~~~~~~~~~~~~~In file included from drivers/target/target_core_user.c:31:./include/uapi/linux/target_core_user.h:122:38: note: while referencing ‘iov’
122 | struct iovec iov[0];
| ^~~
This helps with the ongoing efforts to tighten the FORTIFY_SOURCE routines on memcpy() and help us make progress towards globally enabling -fstrict-flex-arrays=3 [1].
--- include/uapi/linux/target_core_user.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
include/uapi/linux/target_core_user.h +1 -1
@@ -119,7 +119,7 @@ struct tcmu_cmd_entry {__u64 cdb_off;__u64 __pad1;__u64 __pad2; -struct iovec iov[0 ]; + __DECLARE_FLEX_ARRAY(struct iovec, iov); } req;struct {__u8 scsi_status;
Signature · 1 line
2.34.1
Quoted 32 lines · Gustavo A. R. Silva
Zero-length arrays as fake flexible arrays are deprecated and we are moving towards adopting C99 flexible-array members instead.
Address the following warning found with GCC-13 and
-fstrict-flex-arrays=3 enabled:
CCdrivers/target/target_core_user.odrivers/target/target_core_user.c: In function ‘queue_cmd_ring’:drivers/target/target_core_user.c:1096:15: warning: array subscript 0 is outside array bounds of ‘struct iovec[0]’ [-Warray-bounds=]1096 | iov = &entry->req.iov[0]; | ^~~~~~~~~~~~~~~~~~In file included from
drivers/target/target_core_user.c:31:./include/uapi/linux/target_core_user.h:122:38: note: while referencing ‘iov’
122 | struct iovec iov[0];
| ^~~This helps with the ongoing efforts to tighten the
FORTIFY_SOURCEroutines onmemcpy()and help us make progress towards globally enabling -fstrict-flex-arrays=3 [1].Signed-off-by Gustavo A. R. Silva <[email protected]>--- include/uapi/linux/target_core_user.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)include/uapi/linux/target_core_user.h +0
-0
include/uapi/linux/target_core_user.h struct tcmu_cmd_entry { · line 125
Quoted 8 lines
include/uapi/linux/target_core_user.h +1
-1@@ -119,7 +119,7 @@ struct tcmu_cmd_entry {__u64 cdb_off;__u64 __pad1;__u64 __pad2; -struct iovec iov[0 ]; + __DECLARE_FLEX_ARRAY(struct iovec, iov); } req;struct {__u8 scsi_status;
Looks good. Thank you.
Quoted 15 lines · Gustavo A. R. Silva
Zero-length arrays as fake flexible arrays are deprecated and we are moving towards adopting C99 flexible-array members instead.
Address the following warning found with GCC-13 and
-fstrict-flex-arrays=3 enabled:
CCdrivers/target/target_core_user.odrivers/target/target_core_user.c: In function ‘queue_cmd_ring’:drivers/target/target_core_user.c:1096:15: warning: array subscript 0 is outside array bounds of ‘struct iovec[0]’ [-Warray-bounds=]1096 | iov = &entry->req.iov[0]; | ^~~~~~~~~~~~~~~~~~In file included from
drivers/target/target_core_user.c:31:./include/uapi/linux/target_core_user.h:122:38: note: while referencing ‘iov’
122 | struct iovec iov[0];
| ^~~
Quoted 8 lines
This helps with the ongoing efforts to tighten the
FORTIFY_SOURCEroutines onmemcpy()and help us make progress towards globally enabling -fstrict-flex-arrays=3 [1].
Signature · 1 line
Kees Cook
Martin K. Petersen
AppliedGustavo,
Quoted 2 lines
Zero-length arrays as fake flexible arrays are deprecated and we are moving towards adopting C99 flexible-array members instead.
Applied to 6.4/scsi-staging, thanks!
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering
Martin K. Petersen
AppliedQuoted 8 lines · Gustavo A. R. Silva
Zero-length arrays as fake flexible arrays are deprecated and we are moving towards adopting C99 flexible-array members instead.
Address the following warning found with GCC-13 and
-fstrict-flex-arrays=3 enabled:
CCdrivers/target/target_core_user.odrivers/target/target_core_user.c: In function ‘queue_cmd_ring’:drivers/target/target_core_user.c:1096:15: warning: array subscript 0 is outside array bounds of ‘struct iovec[0]’ [-Warray-bounds=]
Quoted 8 lines
1096 | iov = &entry->req.iov[0]; | ^~~~~~~~~~~~~~~~~~In file included from
drivers/target/target_core_user.c:31:./include/uapi/linux/target_core_user.h:122:38: note: while referencing ‘iov’
122 | struct iovec iov[0];
| ^~~[...]
Applied to 6.4/scsi-queue, thanks!
[1/1] uapi: target: Replace fake flex-array with flexible-array member
https://git.kernel.org/mkp/scsi/c/5c8c74ef20e7
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering