linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Isaac Manjarres <isaacmanjarres@google.com>
To: Alice Ryhl <aliceryhl@google.com>
Cc: lorenzo.stoakes@oracle.com,
	Andrew Morton <akpm@linux-foundation.org>,
	kaleshsingh@google.com, jstultz@google.com, surenb@google.com,
	kernel-team@android.com, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/2] mm/memfd: Use strncpy_from_user() to read memfd name
Date: Wed, 8 Jan 2025 10:43:12 -0800	[thread overview]
Message-ID: <Z37HQC07ZIYQ2XvZ@google.com> (raw)
In-Reply-To: <CAH5fLghH+637BDpEYpRZ+qMF=WdiLoJ6T93vPwRCaPvEdh_mNw@mail.gmail.com>

On Wed, Jan 08, 2025 at 02:43:12PM +0100, Alice Ryhl wrote:
> On Tue, Jan 7, 2025 at 7:48 PM Isaac J. Manjarres
> <isaacmanjarres@google.com> wrote:
> >
> > The existing logic uses strnlen_user() to calculate the length of the
> > memfd name from userspace and then copies the string into a buffer using
> > copy_from_user(). This is error-prone, as the string length
> > could have changed between the time when it was calculated and when the
> > string was copied. The existing logic handles this by ensuring that the
> > last byte in the buffer is the terminating zero.
> >
> > This handling is contrived and can better be handled by using
> > strncpy_from_user(), which gets the length of the string and copies
> > it in one shot. Therefore, simplify the logic for copying the memfd
> > name by using strncpy_from_user().
> >
> > No functional change.
> >
> > Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com>
> 
> Looks okay to me. One nit below, but:
> 
> Reviewed-by: Alice Ryhl <aliceryhl@google.com>
> 
> > +       /* length does not include terminating zero */
> > +       len = strncpy_from_user(name + MFD_NAME_PREFIX_LEN, uname, MFD_NAME_MAX_LEN + 1);
> 
> Can we have this comment say "returned length" instead of just
> "length"? Or just remove the comment. Initially I thought you were
> talking about the last argument, and I was confused as that does
> include the nul-terminator.
> 
> Alice

Yes, I will update it to say returned length and add your "Reviewed-by"
tag. Thanks for this!

--Isaac


  reply	other threads:[~2025-01-08 18:43 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-07 18:48 [PATCH v2 0/2] Cleanup for memfd_create() Isaac J. Manjarres
2025-01-07 18:48 ` [PATCH v2 1/2] mm/memfd: Refactor and cleanup the logic in memfd_create() Isaac J. Manjarres
2025-01-08 13:31   ` Alice Ryhl
2025-01-08 18:40     ` Isaac Manjarres
2025-01-08 18:30   ` Lorenzo Stoakes
2025-01-08 20:04     ` Isaac Manjarres
2025-01-08 20:23       ` Lorenzo Stoakes
2025-01-07 18:48 ` [PATCH v2 2/2] mm/memfd: Use strncpy_from_user() to read memfd name Isaac J. Manjarres
2025-01-08 13:43   ` Alice Ryhl
2025-01-08 18:43     ` Isaac Manjarres [this message]
2025-01-08 18:58   ` Lorenzo Stoakes
2025-01-09  2:15     ` Isaac Manjarres
2025-01-09 11:31       ` Lorenzo Stoakes
2025-01-09 18:14         ` Isaac Manjarres

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=Z37HQC07ZIYQ2XvZ@google.com \
    --to=isaacmanjarres@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=aliceryhl@google.com \
    --cc=jstultz@google.com \
    --cc=kaleshsingh@google.com \
    --cc=kernel-team@android.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=surenb@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox