summaryrefslogtreecommitdiffstats
path: root/extensions/libxt_bpf.c
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2018-02-27 16:56:55 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2018-02-28 19:38:19 +0100
commit5beb1582d13d3bfdd0d2b277f5f3154b2fbf4a8e (patch)
tree2efba0d68dad6a0cc68f0fcd94998fed1d9c3d82 /extensions/libxt_bpf.c
parent147a891f8ca48f1f0c932ac304810d68780c90c2 (diff)
extensions: libxt_bpf: Fix build with old kernel versions
In kernel 3.18 the union bpf_attr does not have a pathname attribute and BPF_OBJ_GET is also not defined in these versions. This was added in Linux commit b2197755b263 ("bpf: add support for persistent maps/progs"). Check for the BPF_FS_MAGIC define which was also added in this Linux commit and only activate this code in case we find that define. This fixes a build problem with Linux 3.18. Netfilter bug: #1231 Fixes: f17f9ace8a8 ("extensions: libxt_bpf: support ebpf pinned objects") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'extensions/libxt_bpf.c')
-rw-r--r--extensions/libxt_bpf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/extensions/libxt_bpf.c b/extensions/libxt_bpf.c
index 9510c190..92958247 100644
--- a/extensions/libxt_bpf.c
+++ b/extensions/libxt_bpf.c
@@ -22,6 +22,7 @@
#include <linux/bpf.h>
#endif
+#include <linux/magic.h>
#include <linux/unistd.h>
#define BCODE_FILE_MAX_LEN_B 1024
@@ -62,7 +63,7 @@ static const struct xt_option_entry bpf_opts_v1[] = {
static int bpf_obj_get(const char *filepath)
{
-#if defined HAVE_LINUX_BPF_H && defined __NR_bpf
+#if defined HAVE_LINUX_BPF_H && defined __NR_bpf && defined BPF_FS_MAGIC
union bpf_attr attr;
memset(&attr, 0, sizeof(attr));