From: Daniel Borkmann <daniel@iogearbox.net>
To: Lorenz Bauer <lmb@cloudflare.com>, ys114321@gmail.com
Cc: Alexei Starovoitov <ast@kernel.org>,
netdev@vger.kernel.org, linux-api@vger.kernel.org
Subject: Re: [PATCH 0/3] Fix unsafe BPF_PROG_TEST_RUN interface
Date: Tue, 20 Nov 2018 01:34:05 +0100 [thread overview]
Message-ID: <040aedc7-0883-86c6-3707-b54a6a9e01c2@iogearbox.net> (raw)
In-Reply-To: <CACAyw98fu_=WufBrv_7CwO4iJj3jhOu1n6b3Pr0aZxqSk8++Gw@mail.gmail.com>
On 11/19/2018 03:30 PM, Lorenz Bauer wrote:
> On Sun, 18 Nov 2018 at 06:13, Y Song <ys114321@gmail.com> wrote:
>>
>> There is a slight change of user space behavior for this patch.
>> Without this patch, the value bpf_attr.test.data_size_out is output only.
>> For example,
>> output buffer : out_buf (user allocated size 10)
>> data_size_out is a random value (e.g., 1),
>>
>> The actual data to copy is 5.
>>
>> In today's implementation, the kernel will copy 5 and set data_size_out is 5.
>>
>> With this patch, the kernel will copy 1 and set data_size_out is 5.
>>
>> I am not 100% sure at this time whether we CAN overload data_size_out
>> since it MAY break existing applications.
>
> Yes, that's correct. I think that the likelihood of this is low. It would
> affect code that uses bpf_attr without zeroing it first. I had a look around,
> and I could only find code that would keep working:
Agree, it seems like this would be rather unlikely to break the old behavior
and only if some test app forgot to zero it (given data_size_out is also in
the middle and not at the end). I'd rather prefer this approach here and then
push the patch via stable than adding yet another data_size_out-like member.
I think it also makes sense to return a -ENOSPC as Yonghong suggested in order
to indicate to user space that the buffer is not sufficient. Right now this
would have no such indication to the user so it would not be possible to
distinguish whether truncation or not happened. Was thinking whether it makes
sense to indicate through a new flag member that buffer truncation happened,
but I do like -ENOSPC better.
Thanks,
Daniel
next prev parent reply other threads:[~2018-11-20 0:34 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-16 12:53 [PATCH 0/3] Fix unsafe BPF_PROG_TEST_RUN interface Lorenz Bauer
2018-11-16 12:53 ` [PATCH 1/3] bpf: respect size hint to BPF_PROG_TEST_RUN if present Lorenz Bauer
2018-11-18 5:47 ` Y Song
2018-11-16 12:53 ` [PATCH 2/3] libbpf: require size hint in bpf_prog_test_run Lorenz Bauer
2018-11-18 5:53 ` Y Song
2018-11-16 12:53 ` [PATCH 3/3] selftests: add a test for bpf_prog_test_run output size Lorenz Bauer
2018-11-18 5:59 ` Y Song
2018-11-20 11:35 ` Lorenz Bauer
2018-11-20 16:58 ` Y Song
2018-11-18 6:13 ` [PATCH 0/3] Fix unsafe BPF_PROG_TEST_RUN interface Y Song
2018-11-19 14:30 ` Lorenz Bauer
2018-11-20 0:34 ` Daniel Borkmann [this message]
2018-11-20 15:43 ` [PATCH v2 0/4] " Lorenz Bauer
2018-11-20 15:43 ` [PATCH v2 1/4] bpf: respect size hint to BPF_PROG_TEST_RUN if present Lorenz Bauer
2018-11-20 15:43 ` [PATCH v2 2/4] tools: sync uapi/linux/bpf.h Lorenz Bauer
2018-11-20 15:43 ` [PATCH v2 3/4] libbpf: require size hint in bpf_prog_test_run Lorenz Bauer
2018-11-20 19:18 ` Alexei Starovoitov
2018-11-20 19:43 ` Lorenz Bauer
2018-11-20 22:51 ` Alexei Starovoitov
2018-11-20 15:43 ` [PATCH v2 4/4] selftests: add a test for bpf_prog_test_run output size Lorenz Bauer
2018-11-20 17:18 ` [PATCH v2 0/4] Fix unsafe BPF_PROG_TEST_RUN interface Y Song
2018-11-22 14:09 ` [PATCH v3 " Lorenz Bauer
2018-11-22 14:09 ` [PATCH v3 1/4] bpf: respect size hint to BPF_PROG_TEST_RUN if present Lorenz Bauer
2018-11-22 14:09 ` [PATCH v3 2/4] tools: sync uapi/linux/bpf.h Lorenz Bauer
2018-11-22 14:09 ` [PATCH v3 3/4] libbpf: add bpf_prog_test_run_xattr Lorenz Bauer
2018-11-23 22:25 ` Daniel Borkmann
2018-11-24 22:20 ` Alexei Starovoitov
2018-11-26 12:45 ` Lorenz Bauer
2018-11-26 13:39 ` Daniel Borkmann
2018-11-28 5:05 ` Alexei Starovoitov
2018-11-28 16:52 ` Lorenz Bauer
2018-11-22 14:09 ` [PATCH v3 4/4] selftests: add a test for bpf_prog_test_run_xattr Lorenz Bauer
2018-11-28 16:53 ` [PATCH v4 0/4] Fix unsafe BPF_PROG_TEST_RUN interface Lorenz Bauer
2018-11-28 16:53 ` [PATCH v4 1/4] bpf: respect size hint to BPF_PROG_TEST_RUN if present Lorenz Bauer
2018-11-28 16:53 ` [PATCH v4 2/4] tools: sync uapi/linux/bpf.h Lorenz Bauer
2018-11-28 16:53 ` [PATCH v4 3/4] libbpf: add bpf_prog_test_run_xattr Lorenz Bauer
2018-11-30 21:21 ` Alexei Starovoitov
2018-11-28 16:53 ` [PATCH v4 4/4] selftests: add a test for bpf_prog_test_run_xattr Lorenz Bauer
2018-12-03 11:31 ` [PATCH v5 0/4] Fix unsafe BPF_PROG_TEST_RUN interface Lorenz Bauer
2018-12-03 11:31 ` [PATCH v5 1/4] bpf: respect size hint to BPF_PROG_TEST_RUN if present Lorenz Bauer
2018-12-03 11:31 ` [PATCH v5 2/4] tools: sync uapi/linux/bpf.h Lorenz Bauer
2018-12-03 11:31 ` [PATCH v5 3/4] libbpf: add bpf_prog_test_run_xattr Lorenz Bauer
2018-12-03 11:31 ` [PATCH v5 4/4] selftests: add a test for bpf_prog_test_run_xattr Lorenz Bauer
2018-12-04 16:22 ` [PATCH v5 0/4] Fix unsafe BPF_PROG_TEST_RUN interface Alexei Starovoitov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=040aedc7-0883-86c6-3707-b54a6a9e01c2@iogearbox.net \
--to=daniel@iogearbox.net \
--cc=ast@kernel.org \
--cc=linux-api@vger.kernel.org \
--cc=lmb@cloudflare.com \
--cc=netdev@vger.kernel.org \
--cc=ys114321@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).