diff options
author | Dave Marchevsky <davemarchevsky@fb.com> | 2021-09-17 11:29:11 -0700 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2021-09-17 14:02:06 -0700 |
commit | a42effb0b24fcaf49513c2d7d77ef6daa9e32a6f (patch) | |
tree | 86bb0e923e0af391d62cc3f2d74cb0f44e7c1880 /include | |
parent | 7606729fe24e163923430a5df9d50a246b22d287 (diff) | |
download | linux-stable-a42effb0b24fcaf49513c2d7d77ef6daa9e32a6f.tar.gz linux-stable-a42effb0b24fcaf49513c2d7d77ef6daa9e32a6f.tar.bz2 linux-stable-a42effb0b24fcaf49513c2d7d77ef6daa9e32a6f.zip |
bpf: Clarify data_len param in bpf_snprintf and bpf_seq_printf comments
Since the data_len in these two functions is a byte len of the preceding
u64 *data array, it must always be a multiple of 8. If this isn't the
case both helpers error out, so let's make the requirement explicit so
users don't need to infer it.
Signed-off-by: Dave Marchevsky <davemarchevsky@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210917182911.2426606-10-davemarchevsky@fb.com
Diffstat (limited to 'include')
-rw-r--r-- | include/uapi/linux/bpf.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index 98ca79a67937..6fc59d61937a 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -4046,7 +4046,7 @@ union bpf_attr { * arguments. The *data* are a **u64** array and corresponding format string * values are stored in the array. For strings and pointers where pointees * are accessed, only the pointer values are stored in the *data* array. - * The *data_len* is the size of *data* in bytes. + * The *data_len* is the size of *data* in bytes - must be a multiple of 8. * * Formats **%s**, **%p{i,I}{4,6}** requires to read kernel memory. * Reading kernel memory may fail due to either invalid address or @@ -4751,7 +4751,8 @@ union bpf_attr { * Each format specifier in **fmt** corresponds to one u64 element * in the **data** array. For strings and pointers where pointees * are accessed, only the pointer values are stored in the *data* - * array. The *data_len* is the size of *data* in bytes. + * array. The *data_len* is the size of *data* in bytes - must be + * a multiple of 8. * * Formats **%s** and **%p{i,I}{4,6}** require to read kernel * memory. Reading kernel memory may fail due to either invalid |