From: Jarkko Sakkinen <jarkko@kernel.org>
To: Paul Menzel <pmenzel@molgen.mpg.de>, David Howells <dhowells@redhat.com>
Cc: Thorsten Blum <thorsten.blum@linux.dev>,
Mimi Zohar <zohar@linux.ibm.com>,
David Howells <dhowells@redhat.com>,
Paul Moore <paul@paul-moore.com>,
James Morris <jmorris@namei.org>,
"Serge E. Hallyn" <serge@hallyn.com>,
linux-hardening@vger.kernel.org, Kees Cook <kees@kernel.org>,
linux-integrity@vger.kernel.org, keyrings@vger.kernel.org,
linux-security-module@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3] keys: Replace deprecated strncpy in ecryptfs_fill_auth_tok
Date: Wed, 15 Oct 2025 14:06:16 +0300 [thread overview]
Message-ID: <aO-AKMHUzTmACgwE@kernel.org> (raw)
In-Reply-To: <b9246396-c9d9-4452-a16c-f2c8166a32ee@molgen.mpg.de>
On Mon, Oct 13, 2025 at 06:11:38PM +0200, Paul Menzel wrote:
> Dear Thorsten,
>
>
> Thank you for the patch.
>
> Am 13.10.25 um 17:26 schrieb Thorsten Blum:
> > strncpy() is deprecated for NUL-terminated destination buffers; use
> > strscpy_pad() instead to retain the NUL-padding behavior of strncpy().
> >
> > The destination buffer is initialized using kzalloc() with a 'signature'
> > size of ECRYPTFS_PASSWORD_SIG_SIZE + 1. strncpy() then copies up to
> > ECRYPTFS_PASSWORD_SIG_SIZE bytes from 'key_desc', NUL-padding any
> > remaining bytes if needed, but expects the last byte to be zero.
> >
> > strscpy_pad() also copies the source string to 'signature', and NUL-pads
> > the destination buffer if needed, but ensures it's always NUL-terminated
> > without relying on it being zero-initialized.
> >
> > strscpy_pad() automatically determines the size of the fixed-length
> > destination buffer via sizeof() when the optional size argument is
> > omitted, making an explicit size unnecessary.
> >
> > In encrypted_init(), the source string 'key_desc' is validated by
> > valid_ecryptfs_desc() before calling ecryptfs_fill_auth_tok(), and is
> > therefore NUL-terminated and satisfies the __must_be_cstr() requirement
> > of strscpy_pad().
> >
> > Link: https://github.com/KSPP/linux/issues/90
> > Reviewed-by: Kees Cook <kees@kernel.org>
> > Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
> > Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> > ---
> > Changes in v3:
> > - Improve commit message
> > - Link to v2: https://lore.kernel.org/lkml/20251010161340.458707-2-thorsten.blum@linux.dev/
> >
> > Changes in v2:
> > - Improve commit message as suggested by Jarkko and Kees
> > - Link to v1: https://lore.kernel.org/lkml/20251009180316.394708-3-thorsten.blum@linux.dev/
> > ---
> > security/keys/encrypted-keys/ecryptfs_format.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/security/keys/encrypted-keys/ecryptfs_format.c b/security/keys/encrypted-keys/ecryptfs_format.c
> > index 8fdd76105ce3..2fc6f3a66135 100644
> > --- a/security/keys/encrypted-keys/ecryptfs_format.c
> > +++ b/security/keys/encrypted-keys/ecryptfs_format.c
> > @@ -54,8 +54,7 @@ int ecryptfs_fill_auth_tok(struct ecryptfs_auth_tok *auth_tok,
> > auth_tok->version = (((uint16_t)(major << 8) & 0xFF00)
> > | ((uint16_t)minor & 0x00FF));
> > auth_tok->token_type = ECRYPTFS_PASSWORD;
> > - strncpy((char *)auth_tok->token.password.signature, key_desc,
> > - ECRYPTFS_PASSWORD_SIG_SIZE);
> > + strscpy_pad(auth_tok->token.password.signature, key_desc);
> > auth_tok->token.password.session_key_encryption_key_bytes =
> > ECRYPTFS_MAX_KEY_BYTES;
> > /*
>
> Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Thanks for the review Paul.
David: and also this is in my tree now.
>
>
> Kind regards,
>
> Paul
BR, Jarkko
prev parent reply other threads:[~2025-10-15 11:06 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-13 15:26 [PATCH v3] keys: Replace deprecated strncpy in ecryptfs_fill_auth_tok Thorsten Blum
2025-10-13 16:11 ` Paul Menzel
2025-10-15 11:06 ` Jarkko Sakkinen [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=aO-AKMHUzTmACgwE@kernel.org \
--to=jarkko@kernel.org \
--cc=dhowells@redhat.com \
--cc=jmorris@namei.org \
--cc=kees@kernel.org \
--cc=keyrings@vger.kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=paul@paul-moore.com \
--cc=pmenzel@molgen.mpg.de \
--cc=serge@hallyn.com \
--cc=thorsten.blum@linux.dev \
--cc=zohar@linux.ibm.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.