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_DEVICE
v6.12 -BPF_PROG_TYPE_CGROUP_SKB
BPF_PROG_TYPE_CGROUP_SOCK
v6.12 -BPF_PROG_TYPE_CGROUP_SOCKOPT
v6.12 -BPF_PROG_TYPE_CGROUP_SOCK_ADDR
v6.7 -BPF_PROG_TYPE_CGROUP_SYSCTL
v6.12 -BPF_PROG_TYPE_LSM
BPF_PROG_TYPE_LWT_IN
BPF_PROG_TYPE_LWT_OUT
BPF_PROG_TYPE_LWT_SEG6LOCAL
BPF_PROG_TYPE_LWT_XMIT
BPF_PROG_TYPE_NETFILTER
BPF_PROG_TYPE_PERF_EVENT
v6.12 -BPF_PROG_TYPE_SCHED_ACT
BPF_PROG_TYPE_SCHED_CLS
BPF_PROG_TYPE_SK_SKB
BPF_PROG_TYPE_SOCKET_FILTER
BPF_PROG_TYPE_SOCK_OPS
v6.15 -BPF_PROG_TYPE_STRUCT_OPS
BPF_PROG_TYPE_SYSCALL
BPF_PROG_TYPE_TRACEPOINT
v6.12 -BPF_PROG_TYPE_TRACING
BPF_PROG_TYPE_XDP
Example
Docs could be improved
This part of the docs is incomplete, contributions are very welcome