diff mbox series

[1/3] Revert "selftests/bpf: Add selftest for allow_ptr_leaks"

Message ID 20230913122514.89078-1-gerhorst@amazon.de (mailing list archive)
State New
Headers show
Series [1/3] Revert "selftests/bpf: Add selftest for allow_ptr_leaks" | expand

Commit Message

Luis Gerhorst Sept. 13, 2023, 12:25 p.m. UTC
This reverts commit 0072e3624b463636c842ad8e261f1dc91deb8c78.

The test tests behavior which can not be permitted because of Spectre
v1. See the following commit

  Revert "bpf: Fix issue in verifying allow_ptr_leaks"

which reverts commit d75e30dddf73449bc2d10bb8e2f1a2c446bc67a2 for a
detailed description of the issue.

Reported-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Luis Gerhorst <gerhorst@amazon.de>
Signed-off-by: Luis Gerhorst <gerhorst@cs.fau.de>
---
 .../testing/selftests/bpf/prog_tests/tc_bpf.c | 36 +------------------
 .../testing/selftests/bpf/progs/test_tc_bpf.c | 13 -------
 2 files changed, 1 insertion(+), 48 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Sept. 14, 2023, 12:50 p.m. UTC | #1
Hello:

This series was applied to bpf/bpf.git (master)
by Daniel Borkmann <daniel@iogearbox.net>:

On Wed, 13 Sep 2023 12:25:15 +0000 you wrote:
> This reverts commit 0072e3624b463636c842ad8e261f1dc91deb8c78.
> 
> The test tests behavior which can not be permitted because of Spectre
> v1. See the following commit
> 
>   Revert "bpf: Fix issue in verifying allow_ptr_leaks"
> 
> [...]

Here is the summary with links:
  - [1/3] Revert "selftests/bpf: Add selftest for allow_ptr_leaks"
    https://git.kernel.org/bpf/bpf/c/cc7a599ca30f
  - [2/3] Revert "bpf: Fix issue in verifying allow_ptr_leaks"
    https://git.kernel.org/bpf/bpf/c/45f2aaba1079
  - [3/3] selftests/bpf: Add selftest for packet-pointer Spectre v1 gadget
    https://git.kernel.org/bpf/bpf/c/fc7274e42d14

You are awesome, thank you!
diff mbox series

Patch

diff --git a/tools/testing/selftests/bpf/prog_tests/tc_bpf.c b/tools/testing/selftests/bpf/prog_tests/tc_bpf.c
index 48b55539331e..e873766276d1 100644
--- a/tools/testing/selftests/bpf/prog_tests/tc_bpf.c
+++ b/tools/testing/selftests/bpf/prog_tests/tc_bpf.c
@@ -3,7 +3,6 @@ 
 #include <test_progs.h>
 #include <linux/pkt_cls.h>
 
-#include "cap_helpers.h"
 #include "test_tc_bpf.skel.h"
 
 #define LO_IFINDEX 1
@@ -328,7 +327,7 @@  static int test_tc_bpf_api(struct bpf_tc_hook *hook, int fd)
 	return 0;
 }
 
-void tc_bpf_root(void)
+void test_tc_bpf(void)
 {
 	DECLARE_LIBBPF_OPTS(bpf_tc_hook, hook, .ifindex = LO_IFINDEX,
 			    .attach_point = BPF_TC_INGRESS);
@@ -394,36 +393,3 @@  void tc_bpf_root(void)
 	}
 	test_tc_bpf__destroy(skel);
 }
-
-void tc_bpf_non_root(void)
-{
-	struct test_tc_bpf *skel = NULL;
-	__u64 caps = 0;
-	int ret;
-
-	/* In case CAP_BPF and CAP_PERFMON is not set */
-	ret = cap_enable_effective(1ULL << CAP_BPF | 1ULL << CAP_NET_ADMIN, &caps);
-	if (!ASSERT_OK(ret, "set_cap_bpf_cap_net_admin"))
-		return;
-	ret = cap_disable_effective(1ULL << CAP_SYS_ADMIN | 1ULL << CAP_PERFMON, NULL);
-	if (!ASSERT_OK(ret, "disable_cap_sys_admin"))
-		goto restore_cap;
-
-	skel = test_tc_bpf__open_and_load();
-	if (!ASSERT_OK_PTR(skel, "test_tc_bpf__open_and_load"))
-		goto restore_cap;
-
-	test_tc_bpf__destroy(skel);
-
-restore_cap:
-	if (caps)
-		cap_enable_effective(caps, NULL);
-}
-
-void test_tc_bpf(void)
-{
-	if (test__start_subtest("tc_bpf_root"))
-		tc_bpf_root();
-	if (test__start_subtest("tc_bpf_non_root"))
-		tc_bpf_non_root();
-}
diff --git a/tools/testing/selftests/bpf/progs/test_tc_bpf.c b/tools/testing/selftests/bpf/progs/test_tc_bpf.c
index ef7da419632a..d28ca8d1f3d0 100644
--- a/tools/testing/selftests/bpf/progs/test_tc_bpf.c
+++ b/tools/testing/selftests/bpf/progs/test_tc_bpf.c
@@ -2,8 +2,6 @@ 
 
 #include <linux/bpf.h>
 #include <bpf/bpf_helpers.h>
-#include <linux/if_ether.h>
-#include <linux/ip.h>
 
 /* Dummy prog to test TC-BPF API */
 
@@ -12,14 +10,3 @@  int cls(struct __sk_buff *skb)
 {
 	return 0;
 }
-
-/* Prog to verify tc-bpf without cap_sys_admin and cap_perfmon */
-SEC("tcx/ingress")
-int pkt_ptr(struct __sk_buff *skb)
-{
-	struct iphdr *iph = (void *)(long)skb->data + sizeof(struct ethhdr);
-
-	if ((long)(iph + 1) > (long)skb->data_end)
-		return 1;
-	return 0;
-}