The dhcpcd doesn't work on Intel 32bit platform. Backport a patch to fix
the issue.

Signed-off-by: Yi Zhao <yi.z...@windriver.com>
---
 .../dhcpcd/dhcpcd_9.3.4.bb                    |  1 +
 ...x-i386-for-SECCOMP-as-it-just-uses-s.patch | 57 +++++++++++++++++++
 2 files changed, 58 insertions(+)
 create mode 100644 
meta/recipes-connectivity/dhcpcd/files/0001-privsep-Fix-Linux-i386-for-SECCOMP-as-it-just-uses-s.patch

diff --git a/meta/recipes-connectivity/dhcpcd/dhcpcd_9.3.4.bb 
b/meta/recipes-connectivity/dhcpcd/dhcpcd_9.3.4.bb
index cd81f17773..69a07760b4 100644
--- a/meta/recipes-connectivity/dhcpcd/dhcpcd_9.3.4.bb
+++ b/meta/recipes-connectivity/dhcpcd/dhcpcd_9.3.4.bb
@@ -14,6 +14,7 @@ UPSTREAM_CHECK_URI = 
"https://roy.marples.name/downloads/dhcpcd/";
 SRC_URI = "https://roy.marples.name/downloads/${BPN}/${BPN}-${PV}.tar.xz \
            file://0001-remove-INCLUDEDIR-to-prevent-build-issues.patch \
            
file://0001-Linux-Fix-privsep-build-by-including-sys-termios.h-f.patch \
+           
file://0001-privsep-Fix-Linux-i386-for-SECCOMP-as-it-just-uses-s.patch \
            file://dhcpcd.service \
            file://dhcpcd@.service \
            "
diff --git 
a/meta/recipes-connectivity/dhcpcd/files/0001-privsep-Fix-Linux-i386-for-SECCOMP-as-it-just-uses-s.patch
 
b/meta/recipes-connectivity/dhcpcd/files/0001-privsep-Fix-Linux-i386-for-SECCOMP-as-it-just-uses-s.patch
new file mode 100644
index 0000000000..b79d5f04ce
--- /dev/null
+++ 
b/meta/recipes-connectivity/dhcpcd/files/0001-privsep-Fix-Linux-i386-for-SECCOMP-as-it-just-uses-s.patch
@@ -0,0 +1,57 @@
+From 12cdb2be46e25e1ab99df18324b787ad8749dff7 Mon Sep 17 00:00:00 2001
+From: Roy Marples <r...@marples.name>
+Date: Sat, 12 Dec 2020 22:12:54 +0000
+Subject: [PATCH] privsep: Fix Linux i386 for SECCOMP as it just uses
+ socketcall
+
+Rather than accept(2), recv(2), etc..... which is horrible!
+
+Thanks to Steve Hirsch <stevehirsc...@msn.com> for testing.
+
+Upstream-Status: Backport
+[https://roy.marples.name/cgit/dhcpcd.git/commit/?id=12cdb2be46e25e1ab99df18324b787ad8749dff7]
+
+Signed-off-by: Yi Zhao <yi.z...@windriver.com>
+---
+ src/privsep-linux.c | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+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
+@@ -34,6 +34,7 @@
+ 
+ #include <linux/audit.h>
+ #include <linux/filter.h>
++#include <linux/net.h>
+ #include <linux/seccomp.h>
+ #include <linux/sockios.h>
+ 
+@@ -311,6 +312,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
+-- 
+2.25.1
+
-- 
2.25.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#146037): 
https://lists.openembedded.org/g/openembedded-core/message/146037
Mute This Topic: https://lists.openembedded.org/mt/79145229/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to