41 lines
1.3 KiB
Diff
41 lines
1.3 KiB
Diff
|
From a12326ad330c4f7cd8d2b6ae1c4fbcd952c378dc Mon Sep 17 00:00:00 2001
|
||
|
From: Hauke Mehrtens <hauke@hauke-m.de>
|
||
|
Date: Mon, 26 Feb 2018 17:39:09 +0100
|
||
|
Subject: [PATCH] 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>
|
||
|
---
|
||
|
extensions/libxt_bpf.c | 3 ++-
|
||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||
|
|
||
|
--- 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_
|
||
|
|
||
|
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));
|