KFunc bpf_copy_from_user_task_str
Copy a string from an task's address space
Definition
Copies a NUL terminated string from a task's address space to dst__sz buffer. If user string is too long this will still ensure zero termination in the dst__sz buffer unless buffer size is 0.
Parameters
dst: Destination address, in kernel space. This buffer must be at least dst__sz bytes long.
dst__sz: Maximum number of bytes to copy, includes the trailing NUL.
unsafe_ptr__ign: Source address in the task's address space.
tsk: The task whose address space will be used
flags: The only supported flag is BPF_F_PAD_ZEROS
Flags
BPF_F_PAD_ZEROS: If is set, memset the tail of dst__sz to 0 on success and memset all of dst__sz on failure.
Returns
The number of copied bytes on success including the NUL terminator. A negative error code on failure.
Signature
int bpf_copy_from_user_task_str(void *dst, u32 dst__sz, const void *unsafe_ptr__ign, struct task_struct *tsk, u64 flags)
Note
This function may sleep, and therefore can only be used from sleepable programs.
Usage
Docs could be improved
This part of the docs is incomplete, contributions are very welcome
Program types
The following program types can make use of this kfunc:
BPF_PROG_TYPE_CGROUP_DEVICEv6.12 -BPF_PROG_TYPE_CGROUP_SKBBPF_PROG_TYPE_CGROUP_SOCKv6.12 -BPF_PROG_TYPE_CGROUP_SOCKOPTv6.12 -BPF_PROG_TYPE_CGROUP_SOCK_ADDRv6.7 -BPF_PROG_TYPE_CGROUP_SYSCTLv6.12 -BPF_PROG_TYPE_LSMBPF_PROG_TYPE_LWT_INBPF_PROG_TYPE_LWT_OUTBPF_PROG_TYPE_LWT_SEG6LOCALBPF_PROG_TYPE_LWT_XMITBPF_PROG_TYPE_NETFILTERBPF_PROG_TYPE_PERF_EVENTv6.12 -BPF_PROG_TYPE_SCHED_ACTBPF_PROG_TYPE_SCHED_CLSBPF_PROG_TYPE_SK_SKBBPF_PROG_TYPE_SOCKET_FILTERBPF_PROG_TYPE_SOCK_OPSv6.15 -BPF_PROG_TYPE_STRUCT_OPSBPF_PROG_TYPE_SYSCALLBPF_PROG_TYPE_TRACEPOINTv6.12 -BPF_PROG_TYPE_TRACINGBPF_PROG_TYPE_XDP
Example
Docs could be improved
This part of the docs is incomplete, contributions are very welcome