All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/2] strncpy_from_user for Rust
@ 2025-06-16 12:41 Alice Ryhl
  2025-06-16 12:41 ` [PATCH v5 1/2] uaccess: rust: add strncpy_from_user Alice Ryhl
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Alice Ryhl @ 2025-06-16 12:41 UTC (permalink / raw)
  To: Miguel Ojeda, Andrew Morton, Alexander Viro, Greg Kroah-Hartman
  Cc: Boqun Feng, Benno Lossin, Gary Guo, Björn Roy Baron,
	Andreas Hindborg, Trevor Gross, Danilo Krummrich, rust-for-linux,
	linux-kernel, Alice Ryhl

There is currently no easy way to read NUL-terminated strings from
userspace. Trying to use the ordinary read function on an array of the
maximum length doesn't work because it could fail with EFAULT when the C
string is shorter than the maximum length. In this case,
strncpy_from_user is better because it doesn't return EFAULT even if it
encounters a page fault on bytes that are after the NUL-terminator but
before the maximum length.

I don't see a clear owner of uaccess in MAINTAINERS, so I suggest that
it lands through Miguel's tree.

Signed-off-by: Alice Ryhl <aliceryhl@google.com>
---
Changes in v5:
- Add comment about not updating self.length.
- Add `` in "This implies that len == buf.len()."
- Update guarantees for raw_strncpy_from_user.
- Add Reviewed-by for Benno.
- Link to v4: https://lore.kernel.org/r/20250527-strncpy-from-user-v4-0-82168470d472@google.com

Changes in v4:
- Swap order of arguments to raw_strncpy_from_user, and rename buf to
  dst.
- Update safety comment on CStr::from_bytes_with_nul_unchecked.
- Add `` in "This implies that len == dst.len() < buf.len()."
- Pick up Reviewed-by tags.
- Link to v3: https://lore.kernel.org/r/20250505-strncpy-from-user-v3-0-85c677fd4f91@google.com

Changes in v3:
- Remove pub from raw_strncpy_from_user.
- Mention that some data may have been copied on EFAULT.
- Add more comments to strcpy_into_buf about tricky cases.
- Rewrite documentation of strcpy_into_buf.
- Add documentation alias.
- Pick up Reviewed-by tags.
- Link to v2: https://lore.kernel.org/r/20250429-strncpy-from-user-v2-0-7e6facac0bf0@google.com

Changes in v2:
- Rename the raw wrapper around strncpy_from_user to raw_strncpy_from_user.
- Add a more convenient helper on top that adds the missing
  NUL-terminator when necessary.
- Link to v1: https://lore.kernel.org/r/20250424-strncpy-from-user-v1-1-f983fe21685a@google.com

---
Alice Ryhl (2):
      uaccess: rust: add strncpy_from_user
      uaccess: rust: add UserSliceReader::strcpy_into_buf

 rust/kernel/uaccess.rs | 94 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 93 insertions(+), 1 deletion(-)
---
base-commit: 19272b37aa4f83ca52bdf9c16d5d81bdd1354494
change-id: 20250424-strncpy-from-user-1f2d06b0cdde

Best regards,
-- 
Alice Ryhl <aliceryhl@google.com>


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-07-13 23:37 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-16 12:41 [PATCH v5 0/2] strncpy_from_user for Rust Alice Ryhl
2025-06-16 12:41 ` [PATCH v5 1/2] uaccess: rust: add strncpy_from_user Alice Ryhl
2025-06-16 12:41 ` [PATCH v5 2/2] uaccess: rust: add UserSliceReader::strcpy_into_buf Alice Ryhl
2025-06-17  7:38   ` Benno Lossin
2025-06-17  8:55     ` Alice Ryhl
2025-06-18 18:21       ` Benno Lossin
2025-07-13 23:37 ` [PATCH v5 0/2] strncpy_from_user for Rust Miguel Ojeda

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.