public inbox for linux-staging@lists.linux.dev
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Calvince Otieno <calvncce@gmail.com>
Cc: gustavo@embeddedor.com, outreachy@lists.linux.dev,
	linux-staging@lists.linux.dev, linux-kernel@vger.kernel.or,
	Julia Lawall <julia.lawall@inria.fr>,
	Deepak <dvarma04@hotmail.com>
Subject: Re: [PATCH] staging: wlan-ng: prism2mgmt.c: rewrite flexible array member
Date: Wed, 25 Oct 2023 10:35:59 +0200	[thread overview]
Message-ID: <2023102502-decipher-startle-5115@gregkh> (raw)
In-Reply-To: <ZTjRWkqXeoS74E52@lab-ubuntu>

On Wed, Oct 25, 2023 at 11:27:06AM +0300, Calvince Otieno wrote:
> Declaring zero-length arrays is allowed in GNU C as an extension.
> Although the size of a zero-length array is zero, an array member of
> this kind may increase the size of the enclosing type as a result of
> tail padding. The offset of a zero-length array member from the beginning
> of the enclosing structure is the same as the offset of an array with one
> or more elements of the same type. The alignment of a zero-length array is
> the same as the alignment of its elements.
> 
> Declaring zero-length arrays in other contexts, including as interior
> members of structure objects or as non-member objects, is discouraged.
> Accessing elements of zero-length arrays declared in such contexts is
> undefined and may be diagnosed.
> 
> There are some instances of code in which the sizeof operator is being
> incorrectly/erroneously applied to zero-length arrays and the result
> is zero. Such instances may be hiding some bugs.
> 
> This issue was found with the help of Coccinelle.
> 
> [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
> 
> Signed-off-by: Calvince Otieno <calvncce@gmail.com>
> ---
>  drivers/staging/wlan-ng/p80211metastruct.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/staging/wlan-ng/p80211metastruct.h b/drivers/staging/wlan-ng/p80211metastruct.h
> index a52217c9b953..c8b73c867391 100644
> --- a/drivers/staging/wlan-ng/p80211metastruct.h
> +++ b/drivers/staging/wlan-ng/p80211metastruct.h
> @@ -71,7 +71,6 @@ struct p80211msg_dot11req_scan_results {
>  	struct p80211item_uint32 signal;
>  	struct p80211item_uint32 noise;
>  	struct p80211item_pstr6 bssid;
> -	u8 pad_3C[1];

But this is not a flexible or 0 length array at all.  Why change this?

And are you sure you are allowed to change this?  Did you verify where
this structure is being used and how it is being used and why this
padding field is in here?

And how was this tested?

thanks,

greg k-h

  parent reply	other threads:[~2023-10-25  8:36 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-25  8:27 [PATCH] staging: wlan-ng: prism2mgmt.c: rewrite flexible array member Calvince Otieno
2023-10-25  8:31 ` Dan Carpenter
2023-10-25  8:35 ` Greg Kroah-Hartman [this message]
2023-10-25  8:58   ` Calvince Otieno
2023-10-25  9:05     ` Greg Kroah-Hartman
2023-10-25  9:21       ` Calvince Otieno
2023-10-25  9:48         ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2023102502-decipher-startle-5115@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=calvncce@gmail.com \
    --cc=dvarma04@hotmail.com \
    --cc=gustavo@embeddedor.com \
    --cc=julia.lawall@inria.fr \
    --cc=linux-kernel@vger.kernel.or \
    --cc=linux-staging@lists.linux.dev \
    --cc=outreachy@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox