2023-01-10 01:40:20

by Gustavo A. R. Silva

[permalink] [raw]
Subject: [PATCH][next] Bluetooth: HCI: Replace zero-length arrays with flexible-array members

Zero-length arrays are deprecated[1] and we are moving towards
adopting C99 flexible-array members instead. So, replace zero-length
arrays in a couple of structures with flex-array members.

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 [2].

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays [1]
Link: https://gcc.gnu.org/pipermail/gcc-patches/2022-October/602902.html [2]
Link: https://github.com/KSPP/linux/issues/78
Signed-off-by: Gustavo A. R. Silva <[email protected]>
---
include/net/bluetooth/hci.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index 8d773b042c85..400f8a7d0c3f 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -2156,7 +2156,7 @@ struct hci_cp_le_big_create_sync {
__u8 mse;
__le16 timeout;
__u8 num_bis;
- __u8 bis[0];
+ __u8 bis[];
} __packed;

#define HCI_OP_LE_BIG_TERM_SYNC 0x206c
@@ -2174,7 +2174,7 @@ struct hci_cp_le_setup_iso_path {
__le16 codec_vid;
__u8 delay[3];
__u8 codec_cfg_len;
- __u8 codec_cfg[0];
+ __u8 codec_cfg[];
} __packed;

struct hci_rp_le_setup_iso_path {
--
2.34.1


2023-01-10 02:51:35

by bluez.test.bot

[permalink] [raw]
Subject: RE: [next] Bluetooth: HCI: Replace zero-length arrays with flexible-array members

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=710341

---Test result---

Test Summary:
CheckPatch PASS 0.68 seconds
GitLint FAIL 0.54 seconds
SubjectPrefix PASS 0.12 seconds
BuildKernel PASS 32.38 seconds
CheckAllWarning PASS 35.39 seconds
CheckSparse PASS 40.35 seconds
CheckSmatch PASS 110.13 seconds
BuildKernel32 PASS 30.87 seconds
TestRunnerSetup PASS 444.99 seconds
TestRunner_l2cap-tester PASS 15.92 seconds
TestRunner_iso-tester PASS 16.11 seconds
TestRunner_bnep-tester PASS 5.51 seconds
TestRunner_mgmt-tester PASS 105.91 seconds
TestRunner_rfcomm-tester PASS 8.70 seconds
TestRunner_sco-tester PASS 7.97 seconds
TestRunner_ioctl-tester PASS 9.41 seconds
TestRunner_mesh-tester PASS 6.91 seconds
TestRunner_smp-tester PASS 7.87 seconds
TestRunner_userchan-tester PASS 5.96 seconds
IncrementalBuild PASS 29.63 seconds

Details
##############################
Test: GitLint - FAIL
Desc: Run gitlint
Output:
[next] Bluetooth: HCI: Replace zero-length arrays with flexible-array members

WARNING: I3 - ignore-body-lines: gitlint will be switching from using Python regex 'match' (match beginning) to 'search' (match anywhere) semantics. Please review your ignore-body-lines.regex option accordingly. To remove this warning, set general.regex-style-search=True. More details: https://jorisroovers.github.io/gitlint/configuration/#regex-style-search
11: B1 Line exceeds max length (107>80): "Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays [1]"


---
Regards,
Linux Bluetooth

2023-01-12 22:51:18

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH][next] Bluetooth: HCI: Replace zero-length arrays with flexible-array members

On Mon, Jan 09, 2023 at 07:37:52PM -0600, Gustavo A. R. Silva wrote:
> Zero-length arrays are deprecated[1] and we are moving towards
> adopting C99 flexible-array members instead. So, replace zero-length
> arrays in a couple of structures with flex-array members.
>
> 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 [2].
>
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays [1]
> Link: https://gcc.gnu.org/pipermail/gcc-patches/2022-October/602902.html [2]
> Link: https://github.com/KSPP/linux/issues/78
> Signed-off-by: Gustavo A. R. Silva <[email protected]>

Reviewed-by: Kees Cook <[email protected]>

--
Kees Cook