BPF List
 help / color / mirror / Atom feed
* [PATCH bpf-next] bpf: ignore expected GCC warning in test_global_func10.c
@ 2024-05-11 21:23 Jose E. Marchesi
  2024-05-13  0:40 ` patchwork-bot+netdevbpf
  0 siblings, 1 reply; 2+ messages in thread
From: Jose E. Marchesi @ 2024-05-11 21:23 UTC (permalink / raw)
  To: bpf
  Cc: Jose E . Marchesi, david.faust, cupertino.miranda, Yonghong Song,
	Eduard Zingerman

The BPF selftest global_func10 in progs/test_global_func10.c contains:

  struct Small {
  	long x;
  };

  struct Big {
  	long x;
  	long y;
  };

  [...]

  __noinline int foo(const struct Big *big)
  {
	if (!big)
		return 0;

	return bpf_get_prandom_u32() < big->y;
  }

  [...]

  SEC("cgroup_skb/ingress")
  __failure __msg("invalid indirect access to stack")
  int global_func10(struct __sk_buff *skb)
  {
	const struct Small small = {.x = skb->len };

	return foo((struct Big *)&small) ? 1 : 0;
  }

GCC emits a "maybe uninitialized" warning for the code above, because
it knows `foo' accesses `big->y'.

Since the purpose of this selftest is to check that the verifier will
fail on this sort of invalid memory access, this patch just silences
the compiler warning.

Tested in bpf-next master.
No regressions.

Signed-off-by: Jose E. Marchesi <jose.marchesi@oracle.com>
Cc: david.faust@oracle.com
Cc: cupertino.miranda@oracle.com
Cc: Yonghong Song <yonghong.song@linux.dev>
Cc: Eduard Zingerman <eddyz87@gmail.com>
---
 tools/testing/selftests/bpf/progs/test_global_func10.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tools/testing/selftests/bpf/progs/test_global_func10.c b/tools/testing/selftests/bpf/progs/test_global_func10.c
index 8fba3f3649e2..5da001ca57a5 100644
--- a/tools/testing/selftests/bpf/progs/test_global_func10.c
+++ b/tools/testing/selftests/bpf/progs/test_global_func10.c
@@ -4,6 +4,10 @@
 #include <bpf/bpf_helpers.h>
 #include "bpf_misc.h"
 
+#if !defined(__clang__)
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+#endif
+
 struct Small {
 	long x;
 };
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH bpf-next] bpf: ignore expected GCC warning in test_global_func10.c
  2024-05-11 21:23 [PATCH bpf-next] bpf: ignore expected GCC warning in test_global_func10.c Jose E. Marchesi
@ 2024-05-13  0:40 ` patchwork-bot+netdevbpf
  0 siblings, 0 replies; 2+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-05-13  0:40 UTC (permalink / raw)
  To: Jose E. Marchesi
  Cc: bpf, david.faust, cupertino.miranda, yonghong.song, eddyz87

Hello:

This patch was applied to bpf/bpf-next.git (master)
by Alexei Starovoitov <ast@kernel.org>:

On Sat, 11 May 2024 23:23:49 +0200 you wrote:
> The BPF selftest global_func10 in progs/test_global_func10.c contains:
> 
>   struct Small {
>   	long x;
>   };
> 
>   struct Big {
>   	long x;
>   	long y;
>   };
> 
> [...]

Here is the summary with links:
  - [bpf-next] bpf: ignore expected GCC warning in test_global_func10.c
    https://git.kernel.org/bpf/bpf-next/c/6a2f786e6905

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-05-13  0:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-11 21:23 [PATCH bpf-next] bpf: ignore expected GCC warning in test_global_func10.c Jose E. Marchesi
2024-05-13  0:40 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox