From: Dan Carpenter <dan.carpenter@oracle.com>
To: Deepak R Varma <drv@mailo.com>
Cc: Pavel Skripkin <paskripkin@gmail.com>,
outreachy@lists.linux.dev,
Larry Finger <Larry.Finger@lwfinger.net>,
Phillip Potter <phil@philpotter.co.uk>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] staging: r8188eu: Use flexible-array for one length array member
Date: Fri, 28 Oct 2022 17:43:03 +0300 [thread overview]
Message-ID: <Y1vqd/ij5WqcL3Qe@kadam> (raw)
In-Reply-To: <Y1vjKtM9druO2bSN@ubunlion>
On Fri, Oct 28, 2022 at 07:41:54PM +0530, Deepak R Varma wrote:
> On Fri, Oct 28, 2022 at 05:03:25PM +0300, Pavel Skripkin wrote:
> > Hi Deepak R,
> >
> > Deepak R Varma <drv@mailo.com> says:
> > > Flexible-array member should be used instead of one or zero member to
> > > meet the need for having a dynamically sized trailing elements in a
> > > structure. Refer to links [1] and [2] for detailed guidance on this
> > > suggestion.
> > >
> > > [1] https://en.wikipedia.org/wiki/Flexible_array_member
> > > [2] https://www.kernel.org/doc/html/v5.16/process/deprecated.html#zero-length-and-one-element-arrays
> > >
> > > Issue identified using coccicheck.
> > >
> > > Signed-off-by: Deepak R Varma <drv@mailo.com>
> > > ---
> > > drivers/staging/r8188eu/include/odm.h | 2 +-
> > > drivers/staging/r8188eu/include/wlan_bssdef.h | 6 +++---
> > > 2 files changed, 4 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/drivers/staging/r8188eu/include/odm.h b/drivers/staging/r8188eu/include/odm.h
> > > index 89b01dd614ba..e2a9de5b9323 100644
> > > --- a/drivers/staging/r8188eu/include/odm.h
> > > +++ b/drivers/staging/r8188eu/include/odm.h
> > > @@ -166,7 +166,7 @@ struct odm_ra_info {
> > >
> > > struct ijk_matrix_regs_set {
> > > bool bIQKDone;
> > > - s32 Value[1][IQK_Matrix_REG_NUM];
> > > + s32 Value[][IQK_Matrix_REG_NUM];
> > > };
> > >
> >
> > you are changing the actual size of the struct. Wondering if you have tested
> > this patch somehow
>
> Hello Pavel,
> Thank you for reviewing the patch. I build the module post making the changes an
> ensured that the build is successful. However, I am not sure how to check the
> changes I am proposing. Could you please direct me to some information on how to
> test patches? Is there some documentation generic/driver-specific that I can
> refer to?
You just have to look at every place where it is used and especially
look at where it is allocated. It is only used in one place:
struct ijk_matrix_regs_set IQKMatrixRegSetting;
But that is in the middle of a struct and generally it doesn't make
sense to have a flex array in the middle of a struct. So investigating
further, we see that it really is a one element array:
Do a grep:
pDM_Odm->RFCalibrateInfo.IQKMatrixRegSetting[ChannelMappedIndex].Value[0][1]);
The first element is always zero. So this patch introduces memory
corruption.
The code is messy and should be cleaned up, of course.
regards,
dan carpenter
next prev parent reply other threads:[~2022-10-28 14:43 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-28 12:56 [PATCH] staging: r8188eu: Use flexible-array for one length array member Deepak R Varma
2022-10-28 14:03 ` Pavel Skripkin
2022-10-28 14:11 ` Deepak R Varma
2022-10-28 14:43 ` Dan Carpenter [this message]
2022-11-02 19:19 ` Deepak R Varma
2022-11-03 5:22 ` Dan Carpenter
2022-11-03 5:25 ` Deepak R Varma
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=Y1vqd/ij5WqcL3Qe@kadam \
--to=dan.carpenter@oracle.com \
--cc=Larry.Finger@lwfinger.net \
--cc=drv@mailo.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-staging@lists.linux.dev \
--cc=outreachy@lists.linux.dev \
--cc=paskripkin@gmail.com \
--cc=phil@philpotter.co.uk \
/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