iptables: fix compile with kernel 3.18
authorHauke Mehrtens <hauke@hauke-m.de>
Mon, 26 Feb 2018 16:49:37 +0000 (17:49 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 26 Feb 2018 16:52:15 +0000 (17:52 +0100)
This fixes a compile bug found by build bot with kernel 3.18

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
package/network/utils/iptables/patches/030-extensions-libxt_bpf-Fix-build-with-old-kernel-versi.patch [new file with mode: 0644]

diff --git a/package/network/utils/iptables/patches/030-extensions-libxt_bpf-Fix-build-with-old-kernel-versi.patch b/package/network/utils/iptables/patches/030-extensions-libxt_bpf-Fix-build-with-old-kernel-versi.patch
new file mode 100644 (file)
index 0000000..c825eee
--- /dev/null
@@ -0,0 +1,40 @@
+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));