linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] bpf: fix a false positive kmemcheck warning
@ 2014-09-05 16:01 Mikulas Patocka
  2014-09-05 16:19 ` Alexei Starovoitov
  2014-09-05 16:20 ` Daniel Borkmann
  0 siblings, 2 replies; 9+ messages in thread
From: Mikulas Patocka @ 2014-09-05 16:01 UTC (permalink / raw)
  To: Daniel Borkmann
  Cc: Alexei Starovoitov, Pablo Neira Ayuso, David S. Miller,
	linux-kernel

This patch fixes false positive kmemcheck warning in bpf.

When we try to write the variable len, the compiler generates a code that
reads the 32-bit word, modifies the bits belonging to "len" and writes the
32-bit word back. The reading of the word results in kmemcheck warning due
to reading uninitialized memory. This patch fixes it by avoiding using bit
fields when kmemcheck is enabled.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>

---
 include/linux/filter.h |    5 +++++
 1 file changed, 5 insertions(+)

Index: linux-2.6/include/linux/filter.h
===================================================================
--- linux-2.6.orig/include/linux/filter.h	2014-09-04 23:04:26.000000000 +0200
+++ linux-2.6/include/linux/filter.h	2014-09-04 23:43:05.000000000 +0200
@@ -325,8 +325,13 @@ struct sock;
 struct seccomp_data;
 
 struct bpf_prog {
+#ifdef CONFIG_KMEMCHECK
+	bool			jited;
+	u32			len;
+#else
 	u32			jited:1,	/* Is our filter JIT'ed? */
 				len:31;		/* Number of filter blocks */
+#endif
 	struct sock_fprog_kern	*orig_prog;	/* Original BPF program */
 	unsigned int		(*bpf_func)(const struct sk_buff *skb,
 					    const struct bpf_insn *filter);

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

end of thread, other threads:[~2014-09-05 17:35 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-05 16:01 [PATCH] bpf: fix a false positive kmemcheck warning Mikulas Patocka
2014-09-05 16:19 ` Alexei Starovoitov
2014-09-05 16:20 ` Daniel Borkmann
2014-09-05 17:00   ` Hannes Frederic Sowa
2014-09-05 17:10     ` Daniel Borkmann
2014-09-05 17:13       ` Mikulas Patocka
2014-09-05 17:17         ` Daniel Borkmann
2014-09-05 17:21           ` Alexei Starovoitov
2014-09-05 17:34             ` Daniel Borkmann

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).