From: Kees Cook <keescook@chromium.org>
To: Finn Thain <fthain@linux-m68k.org>
Cc: Justin Stitt <justinstitt@google.com>,
Sathya Prakash Veerichetty <sathya.prakash@broadcom.com>,
Kashyap Desai <kashyap.desai@broadcom.com>,
Sumit Saxena <sumit.saxena@broadcom.com>,
Sreekanth Reddy <sreekanth.reddy@broadcom.com>,
"James E.J. Bottomley" <jejb@linux.ibm.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Suganath Prabu Subramani <suganath-prabu.subramani@broadcom.com>,
Ariel Elior <aelior@marvell.com>,
Manish Chopra <manishc@marvell.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Saurav Kashyap <skashyap@marvell.com>,
Javed Hasan <jhasan@marvell.com>,
GR-QLogic-Storage-Upstream@marvell.com,
Nilesh Javali <njavali@marvell.com>,
Manish Rangankar <mrangankar@marvell.com>,
Don Brace <don.brace@microchip.com>,
mpi3mr-linuxdrv.pdl@broadcom.com, linux-scsi@vger.kernel.org,
linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org,
MPT-FusionLinux.pdl@broadcom.com, netdev@vger.kernel.org,
storagedev@microchip.com
Subject: Re: [PATCH 7/7] scsi: wd33c93: replace deprecated strncpy with strscpy
Date: Fri, 23 Feb 2024 16:01:18 -0800 [thread overview]
Message-ID: <202402231556.7DBA6E1@keescook> (raw)
In-Reply-To: <4a52a2ae-8abf-30e2-5c2a-d57280cb6028@linux-m68k.org>
On Sat, Feb 24, 2024 at 10:44:12AM +1100, Finn Thain wrote:
>
> On Fri, 23 Feb 2024, Justin Stitt wrote:
>
> > @p1 is assigned to @setup_buffer and then we manually assign a NUL-byte
> > at the first index. This renders the following strlen() call useless.
> > Moreover, we don't need to reassign p1 to setup_buffer for any reason --
> > neither do we need to manually set a NUL-byte at the end. strscpy()
> > resolves all this code making it easier to read.
> >
> > Even considering the path where @str is falsey, the manual NUL-byte
> > assignment is useless
>
> And yet your patch would only remove one of those assignments...
The first is needed in case it is called again.
>
> > as setup_buffer is declared with static storage
> > duration in the top-level scope which should NUL-initialize the whole
> > buffer.
> >
>
> So, in order to review this patch, to try to avoid regressions, I would
> have to check your assumption that setup_buffer cannot change after being
> statically initialized. (The author of this code apparently was not
> willing to make that assumption.) It seems that patch review would require
> exhaustively searching for functions using the buffer, and examining the
> call graphs involving those functions. Is it really worth the effort?
It seems to be run for each device? Regardless, I think leaving the
initial "*p1 = '\0';" solves this. (Though I fear for parallel
initializations, but that was already buggy: this code is from pre-git
history...)
>
> > Signed-off-by: Justin Stitt <justinstitt@google.com>
> > ---
> > drivers/scsi/wd33c93.c | 4 +---
> > 1 file changed, 1 insertion(+), 3 deletions(-)
> >
> > diff --git a/drivers/scsi/wd33c93.c b/drivers/scsi/wd33c93.c
> > index e4fafc77bd20..a44b60c9004a 100644
> > --- a/drivers/scsi/wd33c93.c
> > +++ b/drivers/scsi/wd33c93.c
> > @@ -1721,9 +1721,7 @@ wd33c93_setup(char *str)
> > p1 = setup_buffer;
> > *p1 = '\0';
> > if (str)
> > - strncpy(p1, str, SETUP_BUFFER_SIZE - strlen(setup_buffer));
> > - setup_buffer[SETUP_BUFFER_SIZE - 1] = '\0';
> > - p1 = setup_buffer;
> > + strscpy(p1, str, SETUP_BUFFER_SIZE);
> > i = 0;
> > while (*p1 && (i < MAX_SETUP_ARGS)) {
> > p2 = strchr(p1, ',');
> >
> >
I think this conversion looks right.
Reviewed-by: Kees Cook <keescook@chromium.org>
--
Kees Cook
prev parent reply other threads:[~2024-02-24 0:01 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-23 22:23 [PATCH 0/7] scsi: replace deprecated strncpy Justin Stitt
2024-02-23 22:23 ` [PATCH 1/7] scsi: mpi3mr: replace deprecated strncpy with strscpy Justin Stitt
2024-02-23 23:58 ` Finn Thain
2024-02-24 0:04 ` Kees Cook
2024-02-23 22:23 ` [PATCH 2/7] scsi: mpt3sas: " Justin Stitt
2024-02-24 0:05 ` Kees Cook
2024-02-23 22:23 ` [PATCH 3/7] scsi: qedf: " Justin Stitt
2024-02-24 0:09 ` Kees Cook
2024-02-23 22:23 ` [PATCH 4/7] scsi: qla4xxx: " Justin Stitt
2024-02-24 0:23 ` Kees Cook
2024-02-23 22:23 ` [PATCH 5/7] scsi: devinfo: replace strncpy and manual pad Justin Stitt
2024-02-24 0:26 ` Kees Cook
2024-02-23 22:23 ` [PATCH 6/7] scsi: smartpqi: replace deprecated strncpy with strscpy Justin Stitt
2024-02-24 0:27 ` Kees Cook
2024-02-23 22:23 ` [PATCH 7/7] scsi: wd33c93: " Justin Stitt
2024-02-23 23:44 ` Finn Thain
2024-02-24 0:01 ` Kees Cook [this message]
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=202402231556.7DBA6E1@keescook \
--to=keescook@chromium.org \
--cc=GR-QLogic-Storage-Upstream@marvell.com \
--cc=MPT-FusionLinux.pdl@broadcom.com \
--cc=aelior@marvell.com \
--cc=davem@davemloft.net \
--cc=don.brace@microchip.com \
--cc=edumazet@google.com \
--cc=fthain@linux-m68k.org \
--cc=jejb@linux.ibm.com \
--cc=jhasan@marvell.com \
--cc=justinstitt@google.com \
--cc=kashyap.desai@broadcom.com \
--cc=kuba@kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=manishc@marvell.com \
--cc=martin.petersen@oracle.com \
--cc=mpi3mr-linuxdrv.pdl@broadcom.com \
--cc=mrangankar@marvell.com \
--cc=netdev@vger.kernel.org \
--cc=njavali@marvell.com \
--cc=pabeni@redhat.com \
--cc=sathya.prakash@broadcom.com \
--cc=skashyap@marvell.com \
--cc=sreekanth.reddy@broadcom.com \
--cc=storagedev@microchip.com \
--cc=suganath-prabu.subramani@broadcom.com \
--cc=sumit.saxena@broadcom.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.