From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org
Cc: Francis Laniel <laniel_francis@privacyrequired.com>,
Kees Cook <keescook@chromium.org>,
Jakub Kicinski <kuba@kernel.org>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.10.y 1/2] Fix unefficient call to memset before memcpu in nla_strlcpy.
Date: Wed, 9 Sep 2026 21:17:19 -0400 [thread overview]
Message-ID: <20260910011720.3832737-1-sashal@kernel.org> (raw)
In-Reply-To: <2026090426-survival-bush-ee14@gregkh>
From: Francis Laniel <laniel_francis@privacyrequired.com>
[ Upstream commit 8eeb99bc81bc1cb3d5e5323d9a82d8392e3a27b4 ]
Before this commit, nla_strlcpy first memseted dst to 0 then wrote src into it.
This is inefficient because bytes whom number is less than src length are written
twice.
This patch solves this issue by first writing src into dst then fill dst with
0's.
Note that, in the case where src length is higher than dst, only 0 is written.
Otherwise there are as many 0's written to fill dst.
For example, if src is "foo\0" and dst is 5 bytes long, the result will be:
1. "fooGG" after memcpy (G means garbage).
2. "foo\0\0" after memset.
Signed-off-by: Francis Laniel <laniel_francis@privacyrequired.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Stable-dep-of: 1f58a5335cdd ("taskstats: fix cpumask parsing cutting off the last character")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
lib/nlattr.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/nlattr.c b/lib/nlattr.c
index 247426c0af0dc..e08c4b12510b4 100644
--- a/lib/nlattr.c
+++ b/lib/nlattr.c
@@ -756,8 +756,9 @@ size_t nla_strlcpy(char *dst, const struct nlattr *nla, size_t dstsize)
if (dstsize > 0) {
size_t len = (srclen >= dstsize) ? dstsize - 1 : srclen;
- memset(dst, 0, dstsize);
memcpy(dst, src, len);
+ /* Zero pad end of dst. */
+ memset(dst + len, 0, dstsize - len);
}
return srclen;
--
2.53.0
next prev parent reply other threads:[~2026-09-10 1:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-04 4:51 FAILED: patch "[PATCH] taskstats: fix cpumask parsing cutting off the last character" failed to apply to 5.10-stable tree gregkh
2026-09-10 1:17 ` Sasha Levin [this message]
2026-09-10 1:17 ` [PATCH 5.10.y 2/2] taskstats: fix cpumask parsing cutting off the last character Sasha Levin
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=20260910011720.3832737-1-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=keescook@chromium.org \
--cc=kuba@kernel.org \
--cc=laniel_francis@privacyrequired.com \
--cc=stable@vger.kernel.org \
/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.