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 ? > +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.