All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eugene Syromiatnikov <esyr@redhat.com>
To: Jiri Olsa <jolsa@kernel.org>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Ingo Molnar <mingo@redhat.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>
Cc: Andrii Nakryiko <andrii@kernel.org>,
	Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>,
	Yonghong Song <yhs@fb.com>,
	John Fastabend <john.fastabend@gmail.com>,
	KP Singh <kpsingh@kernel.org>,
	netdev@vger.kernel.org, bpf@vger.kernel.org,
	linux-kernel@vger.kernel.org, Shuah Khan <shuah@kernel.org>,
	linux-kselftest@vger.kernel.org
Subject: [PATCH bpf-next v3 0/4] Fix 32-bit arch and compat support for the kprobe_multi attach type
Date: Tue, 17 May 2022 09:36:03 +0200	[thread overview]
Message-ID: <cover.1652772731.git.esyr@redhat.com> (raw)

As suggested in [1], the kprobe_multi interface is to be fixed for 32-bit
architectures and compat, rather then disabled.  As it turned out,
there are a couple of additional problems that are to be addressed:
 - the absence of size overflow checks, leading to possible
   out-of-bounds writes (addressed by the first patch; this one likely has
   to be fixed in 5.18, where the version of the patch from [3]
   may be preferrable, along with [4] to avoid applying the rest
   of the series);
 - the assumption that long has the same size as u64, which would make
   cookies arrays size calculation incorrect on 32-bit architectures
   (addressed by the second patch);
 - the addrs array passing API, that is incompatible with compat and has
   to be changed (addressed in the fourth patch): those are kernel
   addresses and not user ones (as was incorrectly stated in [2]);
   this change is only semantical for 64-bit user/kernelspace,
   so it shouldn't impact ABI there, at least.

[1] https://lore.kernel.org/lkml/CAADnVQ+2gwhcMht4PuDnDOFKY68Wsq8QFz4Y69NBX_TLaSexQQ@mail.gmail.com/
[2] https://lore.kernel.org/lkml/20220510184155.GA8295@asgard.redhat.com/
[3] https://lore.kernel.org/lkml/20220516230455.GA25103@asgard.redhat.com/
[4] https://lore.kernel.org/lkml/20220506142148.GA24802@asgard.redhat.com/

v3:
 - Rebased on top of bpf-next
 - Removed unnecessary size/cookies_size assignments as suggested
   by Yonghong Sond

v2: https://lore.kernel.org/lkml/20220516230441.GA22091@asgard.redhat.com/
 - Fixed the isses reported by CI

v1: https://lore.kernel.org/lkml/20220516182657.GA28596@asgard.redhat.com/

Eugene Syromiatnikov (4):
  bpf_trace: check size for overflow in bpf_kprobe_multi_link_attach
  bpf_trace: support 32-bit kernels in bpf_kprobe_multi_link_attach
  bpf_trace: handle compat in copy_user_syms
  bpf_trace: pass array of u64 values in kprobe_multi.addrs

 kernel/trace/bpf_trace.c                           | 67 ++++++++++++++++------
 tools/lib/bpf/bpf.h                                |  2 +-
 tools/lib/bpf/libbpf.c                             |  8 +--
 tools/lib/bpf/libbpf.h                             |  2 +-
 .../testing/selftests/bpf/prog_tests/bpf_cookie.c  |  2 +-
 .../selftests/bpf/prog_tests/kprobe_multi_test.c   |  8 +--
 6 files changed, 62 insertions(+), 27 deletions(-)

-- 
2.1.4


             reply	other threads:[~2022-05-17  7:36 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-17  7:36 Eugene Syromiatnikov [this message]
2022-05-17  7:36 ` [PATCH bpf-next v3 1/4] bpf_trace: check size for overflow in bpf_kprobe_multi_link_attach Eugene Syromiatnikov
2022-05-17  9:12   ` Jiri Olsa
2022-05-18 23:30   ` Andrii Nakryiko
2022-05-19 14:37     ` Eugene Syromiatnikov
2022-05-20  0:48       ` Andrii Nakryiko
2022-05-17  7:36 ` [PATCH bpf-next v3 2/4] bpf_trace: support 32-bit kernels " Eugene Syromiatnikov
2022-05-17  9:12   ` Jiri Olsa
2022-05-18 23:31   ` Andrii Nakryiko
2022-05-17  7:36 ` [PATCH bpf-next v3 3/4] bpf_trace: handle compat in copy_user_syms Eugene Syromiatnikov
2022-05-18 23:39   ` Andrii Nakryiko
2022-05-17  7:36 ` [PATCH bpf-next v3 4/4] bpf_trace: pass array of u64 values in kprobe_multi.addrs Eugene Syromiatnikov
2022-05-17  9:12   ` Jiri Olsa
2022-05-17 12:30     ` Eugene Syromiatnikov
2022-05-17 20:03       ` Jiri Olsa
2022-05-17 21:34         ` Yonghong Song
2022-05-18 11:24           ` Jiri Olsa
2022-05-18 12:30             ` Eugene Syromiatnikov
2022-05-18 23:47               ` Andrii Nakryiko
2022-05-18 23:48               ` Andrii Nakryiko
2022-05-19 17:33                 ` Eugene Syromiatnikov
2022-05-20 23:16                   ` Andrii Nakryiko
2022-05-18 23:50   ` Andrii Nakryiko
2022-05-19 14:43     ` Eugene Syromiatnikov

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=cover.1652772731.git.esyr@redhat.com \
    --to=esyr@redhat.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=john.fastabend@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=kafai@fb.com \
    --cc=kpsingh@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=mingo@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=shuah@kernel.org \
    --cc=songliubraving@fb.com \
    --cc=yhs@fb.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.