2023-08-04 05:01:28

by Atul Raut

[permalink] [raw]
Subject: [PATCH v2] ath6kl: replace one-element array with flexible-array member

One-element arrays are no longer relevant, and their
place has been taken by flexible array members thus,
use a flexible-array member to replace the one-element
array in struct ath6kl_usb_ctrl_diag_cmd_write

This fixes warnings such as:
./drivers/net/wireless/ath/ath6kl/usb.c:109:8-12: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)

Signed-off-by: Atul Raut <[email protected]>
---
drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
index 5220809841a6..c8ecc9e85897 100644
--- a/drivers/net/wireless/ath/ath6kl/usb.c
+++ b/drivers/net/wireless/ath/ath6kl/usb.c
@@ -106,7 +106,7 @@ struct ath6kl_usb_ctrl_diag_cmd_write {
__le32 cmd;
__le32 address;
__le32 value;
- __le32 _pad[1];
+ __le32 _pad[];
} __packed;

struct ath6kl_usb_ctrl_diag_cmd_read {
--
2.34.1



2023-08-04 05:36:10

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v2] ath6kl: replace one-element array with flexible-array member

On Thu, Aug 03, 2023 at 09:55:54PM -0700, Atul Raut wrote:
> One-element arrays are no longer relevant, and their
> place has been taken by flexible array members thus,
> use a flexible-array member to replace the one-element
> array in struct ath6kl_usb_ctrl_diag_cmd_write
>
> This fixes warnings such as:
> ./drivers/net/wireless/ath/ath6kl/usb.c:109:8-12: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
>
> Signed-off-by: Atul Raut <[email protected]>
> ---
> drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
> index 5220809841a6..c8ecc9e85897 100644
> --- a/drivers/net/wireless/ath/ath6kl/usb.c
> +++ b/drivers/net/wireless/ath/ath6kl/usb.c
> @@ -106,7 +106,7 @@ struct ath6kl_usb_ctrl_diag_cmd_write {
> __le32 cmd;
> __le32 address;
> __le32 value;
> - __le32 _pad[1];
> + __le32 _pad[];

Are you sure this is actually a variable length array?

And you just changed the size of this structure, are you sure this is
correct?

There have been lots of work on this type of thing in the past on the
hardening mailing list, I suggest you work there with the developers to
see if this is even a valid change first.

thanks,

greg k-h

2023-08-04 07:32:31

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH v2] ath6kl: replace one-element array with flexible-array member

Greg KH <[email protected]> writes:

> On Thu, Aug 03, 2023 at 09:55:54PM -0700, Atul Raut wrote:
>
>> One-element arrays are no longer relevant, and their
>> place has been taken by flexible array members thus,
>> use a flexible-array member to replace the one-element
>> array in struct ath6kl_usb_ctrl_diag_cmd_write
>>
>> This fixes warnings such as:
>> ./drivers/net/wireless/ath/ath6kl/usb.c:109:8-12: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
>>
>> Signed-off-by: Atul Raut <[email protected]>
>> ---
>> drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
>> index 5220809841a6..c8ecc9e85897 100644
>> --- a/drivers/net/wireless/ath/ath6kl/usb.c
>> +++ b/drivers/net/wireless/ath/ath6kl/usb.c
>> @@ -106,7 +106,7 @@ struct ath6kl_usb_ctrl_diag_cmd_write {
>> __le32 cmd;
>> __le32 address;
>> __le32 value;
>> - __le32 _pad[1];
>> + __le32 _pad[];
>
> Are you sure this is actually a variable length array?

It's not, it's just padding. We both told this in v1:

https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

> And you just changed the size of this structure, are you sure this is
> correct?

This patch is not correct.

Atul, ALWAYS include a changelog when submitting a new version. Please
carefully read our wiki link below before submitting new patches to
wireless.

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2023-08-04 09:46:39

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v2] ath6kl: replace one-element array with flexible-array member

On Fri, Aug 04, 2023 at 10:10:37AM +0300, Kalle Valo wrote:
> Greg KH <[email protected]> writes:
>
> > On Thu, Aug 03, 2023 at 09:55:54PM -0700, Atul Raut wrote:
> >
> >> One-element arrays are no longer relevant, and their
> >> place has been taken by flexible array members thus,
> >> use a flexible-array member to replace the one-element
> >> array in struct ath6kl_usb_ctrl_diag_cmd_write
> >>
> >> This fixes warnings such as:
> >> ./drivers/net/wireless/ath/ath6kl/usb.c:109:8-12: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> >>
> >> Signed-off-by: Atul Raut <[email protected]>
> >> ---
> >> drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
> >> index 5220809841a6..c8ecc9e85897 100644
> >> --- a/drivers/net/wireless/ath/ath6kl/usb.c
> >> +++ b/drivers/net/wireless/ath/ath6kl/usb.c
> >> @@ -106,7 +106,7 @@ struct ath6kl_usb_ctrl_diag_cmd_write {
> >> __le32 cmd;
> >> __le32 address;
> >> __le32 value;
> >> - __le32 _pad[1];
> >> + __le32 _pad[];
> >
> > Are you sure this is actually a variable length array?
>
> It's not, it's just padding. We both told this in v1:
>
> https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

Hey, I'm consistent, nice! :)

But Atul, that's not good to ignore our review comments. Usually that
ends up meaning that everyone will then just ignore your submissions,
generally a not-good resolution.

thanks,

greg k-h

2023-08-07 14:49:31

by Jeff Johnson

[permalink] [raw]
Subject: Re: [PATCH v2] ath6kl: replace one-element array with flexible-array member

On 8/4/2023 2:30 AM, Greg KH wrote:
> On Fri, Aug 04, 2023 at 10:10:37AM +0300, Kalle Valo wrote:
>> Greg KH <[email protected]> writes:
>>
>>> On Thu, Aug 03, 2023 at 09:55:54PM -0700, Atul Raut wrote:
>>>
>>>> One-element arrays are no longer relevant, and their
>>>> place has been taken by flexible array members thus,
>>>> use a flexible-array member to replace the one-element
>>>> array in struct ath6kl_usb_ctrl_diag_cmd_write
>>>>
>>>> This fixes warnings such as:
>>>> ./drivers/net/wireless/ath/ath6kl/usb.c:109:8-12: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
>>>>
>>>> Signed-off-by: Atul Raut <[email protected]>
>>>> ---
>>>> drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
>>>> index 5220809841a6..c8ecc9e85897 100644
>>>> --- a/drivers/net/wireless/ath/ath6kl/usb.c
>>>> +++ b/drivers/net/wireless/ath/ath6kl/usb.c
>>>> @@ -106,7 +106,7 @@ struct ath6kl_usb_ctrl_diag_cmd_write {
>>>> __le32 cmd;
>>>> __le32 address;
>>>> __le32 value;
>>>> - __le32 _pad[1];
>>>> + __le32 _pad[];
>>>
>>> Are you sure this is actually a variable length array?
>>
>> It's not, it's just padding. We both told this in v1:
>>
>> https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/
>
> Hey, I'm consistent, nice! :)
>
> But Atul, that's not good to ignore our review comments. Usually that
> ends up meaning that everyone will then just ignore your submissions,
> generally a not-good resolution.
>
> thanks,
>
> greg k-h

Since the 'pad' field is never directly accessed, suggest the author
respin this this to use simply:
__le32 _pad;

That will prevent others from trying to "fix" this actual one-element
array in the future.

2023-08-07 15:45:21

by Atul Raut

[permalink] [raw]
Subject: Re: [PATCH v2] ath6kl: replace one-element array with flexible-array member

On Mon, Aug 07, 2023 at 07:13:20AM -0700, Jeff Johnson wrote:
>On 8/4/2023 2:30 AM, Greg KH wrote:
>>On Fri, Aug 04, 2023 at 10:10:37AM +0300, Kalle Valo wrote:
>>>Greg KH <[email protected]> writes:
>>>
>>>>On Thu, Aug 03, 2023 at 09:55:54PM -0700, Atul Raut wrote:
>>>>
>>>>>One-element arrays are no longer relevant, and their
>>>>>place has been taken by flexible array members thus,
>>>>>use a flexible-array member to replace the one-element
>>>>>array in struct ath6kl_usb_ctrl_diag_cmd_write
>>>>>
>>>>>This fixes warnings such as:
>>>>>./drivers/net/wireless/ath/ath6kl/usb.c:109:8-12: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
>>>>>
>>>>>Signed-off-by: Atul Raut <[email protected]>
>>>>>---
>>>>> drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
>>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>>diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
>>>>>index 5220809841a6..c8ecc9e85897 100644
>>>>>--- a/drivers/net/wireless/ath/ath6kl/usb.c
>>>>>+++ b/drivers/net/wireless/ath/ath6kl/usb.c
>>>>>@@ -106,7 +106,7 @@ struct ath6kl_usb_ctrl_diag_cmd_write {
>>>>> __le32 cmd;
>>>>> __le32 address;
>>>>> __le32 value;
>>>>>- __le32 _pad[1];
>>>>>+ __le32 _pad[];
>>>>
>>>>Are you sure this is actually a variable length array?
>>>
>>>It's not, it's just padding. We both told this in v1:
>>>
>>>https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/
>>
>>Hey, I'm consistent, nice! :)
>>
>>But Atul, that's not good to ignore our review comments. Usually that
>>ends up meaning that everyone will then just ignore your submissions,
>>generally a not-good resolution.
>>
>>thanks,
>>
>>greg k-h
>
>Since the 'pad' field is never directly accessed, suggest the author
>respin this this to use simply:
> __le32 _pad;
>
>That will prevent others from trying to "fix" this actual one-element
>array in the future.


Attachments:
(No filename) (2.04 kB)
I appreciate the comments. Will refrain from altering this or any other submitted patches, as advised.
signature.asc (673.00 B)
Download all attachments