summaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/bpf.h
diff options
context:
space:
mode:
authorLorenz Bauer2018-12-03 12:31:23 +0100
committerAlexei Starovoitov2018-12-04 17:18:13 +0100
commitb5a36b1e1b138285ea0df34bf96c759e1e30fafd (patch)
tree979d2a28beaa2dcb3bba77964e7e44630694e8eb /include/uapi/linux/bpf.h
parentsamples: bpf: fix: seg fault with NULL pointer arg (diff)
downloadkernel-qcow2-linux-b5a36b1e1b138285ea0df34bf96c759e1e30fafd.tar.gz
kernel-qcow2-linux-b5a36b1e1b138285ea0df34bf96c759e1e30fafd.tar.xz
kernel-qcow2-linux-b5a36b1e1b138285ea0df34bf96c759e1e30fafd.zip
bpf: respect size hint to BPF_PROG_TEST_RUN if present
Use data_size_out as a size hint when copying test output to user space. ENOSPC is returned if the output buffer is too small. Callers which so far did not set data_size_out are not affected. Signed-off-by: Lorenz Bauer <lmb@cloudflare.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'include/uapi/linux/bpf.h')
-rw-r--r--include/uapi/linux/bpf.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index 572eb2d42768..c8e1eeee2c5f 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -374,8 +374,11 @@ union bpf_attr {
struct { /* anonymous struct used by BPF_PROG_TEST_RUN command */
__u32 prog_fd;
__u32 retval;
- __u32 data_size_in;
- __u32 data_size_out;
+ __u32 data_size_in; /* input: len of data_in */
+ __u32 data_size_out; /* input/output: len of data_out
+ * returns ENOSPC if data_out
+ * is too small.
+ */
__aligned_u64 data_in;
__aligned_u64 data_out;
__u32 repeat;