mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-28 11:43:25 +02:00
dhcpcd: Update to 9.3.4
For details see: https://roy.marples.name/archives/dhcpcd-discuss/0003334.html This version contains the official fix from here: https://roy.marples.name/cgit/dhcpcd.git/commit/?id=12cdb2be46e25e1ab99df18324b787ad8749dff7 This should fix Bug #12552 (dhcpcd-9.3.4 crash with bad system call) on 32bit/i686 systems. Signed-off-by: Matthias Fischer <matthias.fischer@ipfire.org> Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
committed by
Michael Tremer
parent
631b7056ac
commit
d96d979e2a
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
include Config
|
include Config
|
||||||
|
|
||||||
VER = 9.1.4
|
VER = 9.3.4
|
||||||
|
|
||||||
THISAPP = dhcpcd-$(VER)
|
THISAPP = dhcpcd-$(VER)
|
||||||
DL_FILE = $(THISAPP).tar.xz
|
DL_FILE = $(THISAPP).tar.xz
|
||||||
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
|
|||||||
|
|
||||||
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
|
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
|
||||||
|
|
||||||
$(DL_FILE)_MD5 = dd77711cf3232002bb075f5210269f88
|
$(DL_FILE)_MD5 = badb02dfc69fe9bbeec35a02efcdb4db
|
||||||
|
|
||||||
install : $(TARGET)
|
install : $(TARGET)
|
||||||
|
|
||||||
@@ -70,6 +70,9 @@ $(subst %,%_MD5,$(objects)) :
|
|||||||
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
||||||
@$(PREBUILD)
|
@$(PREBUILD)
|
||||||
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
|
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
|
||||||
|
|
||||||
|
cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dhcpcd/01_Fix_Linux_i386_for_SECCOMP_as_it_just_uses_socketcall.patch
|
||||||
|
|
||||||
cd $(DIR_APP) && ./configure --prefix="" --sysconfdir=/var/ipfire/dhcpc \
|
cd $(DIR_APP) && ./configure --prefix="" --sysconfdir=/var/ipfire/dhcpc \
|
||||||
--dbdir=/var/ipfire/dhcpc \
|
--dbdir=/var/ipfire/dhcpc \
|
||||||
--libexecdir=/var/ipfire/dhcpc \
|
--libexecdir=/var/ipfire/dhcpc \
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
diff --git a/src/privsep-linux.c b/src/privsep-linux.c
|
||||||
|
index 050a30cf..d31d720d 100644
|
||||||
|
--- a/src/privsep-linux.c
|
||||||
|
+++ b/src/privsep-linux.c
|
||||||
|
@@ -32,6 +32,7 @@
|
||||||
|
|
||||||
|
#include <linux/audit.h>
|
||||||
|
#include <linux/filter.h>
|
||||||
|
+#include <linux/net.h>
|
||||||
|
#include <linux/seccomp.h>
|
||||||
|
#include <linux/sockios.h>
|
||||||
|
|
||||||
|
@@ -304,6 +305,23 @@ static struct sock_filter ps_seccomp_filter[] = {
|
||||||
|
#ifdef __NR_sendto
|
||||||
|
SECCOMP_ALLOW(__NR_sendto),
|
||||||
|
#endif
|
||||||
|
+#ifdef __NR_socketcall
|
||||||
|
+ /* i386 needs this and demonstrates why SECCOMP
|
||||||
|
+ * is poor compared to OpenBSD pledge(2) and FreeBSD capsicum(4)
|
||||||
|
+ * as this is soooo tied to the kernel API which changes per arch
|
||||||
|
+ * and likely libc as well. */
|
||||||
|
+ SECCOMP_ALLOW_ARG(__NR_socketcall, 0, SYS_ACCEPT),
|
||||||
|
+ SECCOMP_ALLOW_ARG(__NR_socketcall, 0, SYS_ACCEPT4),
|
||||||
|
+ SECCOMP_ALLOW_ARG(__NR_socketcall, 0, SYS_LISTEN),
|
||||||
|
+ SECCOMP_ALLOW_ARG(__NR_socketcall, 0, SYS_GETSOCKOPT), /* overflow */
|
||||||
|
+ SECCOMP_ALLOW_ARG(__NR_socketcall, 0, SYS_RECV),
|
||||||
|
+ SECCOMP_ALLOW_ARG(__NR_socketcall, 0, SYS_RECVFROM),
|
||||||
|
+ SECCOMP_ALLOW_ARG(__NR_socketcall, 0, SYS_RECVMSG),
|
||||||
|
+ SECCOMP_ALLOW_ARG(__NR_socketcall, 0, SYS_SEND),
|
||||||
|
+ SECCOMP_ALLOW_ARG(__NR_socketcall, 0, SYS_SENDMSG),
|
||||||
|
+ SECCOMP_ALLOW_ARG(__NR_socketcall, 0, SYS_SENDTO),
|
||||||
|
+ SECCOMP_ALLOW_ARG(__NR_socketcall, 0, SYS_SHUTDOWN),
|
||||||
|
+#endif
|
||||||
|
#ifdef __NR_shutdown
|
||||||
|
SECCOMP_ALLOW(__NR_shutdown),
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user