From: David Laight <david.laight.linux@gmail.com>
To: Thorsten Blum <thorsten.blum@linux.dev>
Cc: Srujana Challa <schalla@marvell.com>,
Bharat Bhushan <bbhushan2@marvell.com>,
Herbert Xu <herbert@gondor.apana.org.au>,
"David S. Miller" <davem@davemloft.net>,
Kees Cook <kees@kernel.org>,
linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] crypto: octeontx - use strscpy_pad in ucode_load_store
Date: Wed, 20 May 2026 14:36:10 +0100 [thread overview]
Message-ID: <20260520143610.49cb7407@pumpkin> (raw)
In-Reply-To: <20260520100031.246078-2-thorsten.blum@linux.dev>
On Wed, 20 May 2026 12:00:30 +0200
Thorsten Blum <thorsten.blum@linux.dev> wrote:
> Instead of zero-initializing the temporary buffer and then copying into
> it with strscpy(), use strscpy_pad() to copy the string and zero-pad any
> trailing bytes. Drop the explicit size argument to further simplify the
> code since strscpy_pad() can determine it automatically when the
> destination buffer has a fixed length.
>
> Also use strscpy_pad() to check for string truncation instead of the
> hard-coded OTX_CPT_UCODE_NAME_LENGTH.
This code is horrid :-)
It really ought to be possible to parse the string without taking a writeable
copy.
There is also the 'fun' that it is passed the length of the string - hopefully
it is '\0' terminated at the same length.
Then there is this beauty:
if (strnstr(val, " ", strlen(val)))
-- David
>
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
> drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c b/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c
> index e0f38d32bc93..205579a6ba2b 100644
> --- a/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c
> +++ b/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c
> @@ -1318,7 +1318,7 @@ static ssize_t ucode_load_store(struct device *dev,
> {
> struct otx_cpt_engines engs[OTX_CPT_MAX_ETYPES_PER_GRP] = { {0} };
> char *ucode_filename[OTX_CPT_MAX_ETYPES_PER_GRP];
> - char tmp_buf[OTX_CPT_UCODE_NAME_LENGTH] = { 0 };
> + char tmp_buf[OTX_CPT_UCODE_NAME_LENGTH];
> char *start, *val, *err_msg, *tmp;
> struct otx_cpt_eng_grps *eng_grps;
> int grp_idx = 0, ret = -EINVAL;
> @@ -1326,12 +1326,11 @@ static ssize_t ucode_load_store(struct device *dev,
> int del_grp_idx = -1;
> int ucode_idx = 0;
>
> - if (count >= OTX_CPT_UCODE_NAME_LENGTH)
> + if (strscpy_pad(tmp_buf, buf) < 0)
> return -EINVAL;
>
> eng_grps = container_of(attr, struct otx_cpt_eng_grps, ucode_load_attr);
> err_msg = "Invalid engine group format";
> - strscpy(tmp_buf, buf, OTX_CPT_UCODE_NAME_LENGTH);
> start = tmp_buf;
>
> has_se = has_ie = has_ae = false;
>
next prev parent reply other threads:[~2026-05-20 13:36 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-20 10:00 [PATCH] crypto: octeontx - use strscpy_pad in ucode_load_store Thorsten Blum
2026-05-20 13:36 ` David Laight [this message]
2026-05-29 6:06 ` Herbert Xu
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=20260520143610.49cb7407@pumpkin \
--to=david.laight.linux@gmail.com \
--cc=bbhushan2@marvell.com \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=kees@kernel.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=schalla@marvell.com \
--cc=thorsten.blum@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 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.