On Thu, Aug 22, 2024 at 8:15 PM Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> wrote: > > On Thu, Aug 22, 2024 at 5:06 PM Jordan Rome <linux@xxxxxxxxxxxxxx> wrote: > > > > +/** > > + * bpf_copy_from_user_str() - Copy a string from an unsafe user address > > + * @dst: Destination address, in kernel space. This buffer must be at > > + * least @dst__szk bytes long. > > + * @dst__szk: Maximum number of bytes to copy, including the trailing NUL. > > + * @unsafe_ptr__ign: Source address, in user space. > > + * @flags: The only supported flag is BPF_F_PAD_ZEROS > > + * > > + * Copies a NUL-terminated string from userspace to BPF space. If user string is > > + * too long this will still ensure zero termination in the dst buffer unless > > + * buffer size is 0. > > + * > > + * If BPF_F_PAD_ZEROS flag is set, memset the tail of @dst to 0 on success and > > + * memset all of @dst on failure. > > + */ > > +__bpf_kfunc int bpf_copy_from_user_str(void *dst, u32 dst__szk, const void __user *unsafe_ptr__ign, u64 flags) > > Did you miss my previous comment re __szk vs __sz ? > Ah, yes, I did miss it. Will fix. > > +enum { > > + BPF_F_PAD_ZEROS = (1ULL << 0), > > +}; > > Pls give enum a name, so it's easier for CORE logic to detect the > presence of this feature in the kernel. How about 'bpf_copy_str_flags' ? As I imagine we will use this flag on 'bpf_copy_from_user_task_str', when I add that.