dhcpcd: backport two patches to fix runtime error

In case of nodistro, dhcpcd gives us 'Bad system call'
error and exits. This is because there are syscalls that
should be allowed but not in privsep. Backport two patches
to fix this issue.

(From OE-Core rev: a40acd3741069bb70283581d186e09d1d7df2a7a)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f1e6a0c16d6685096ec9313301aa431e73d02c07)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Chen Qi
2023-01-10 14:52:32 +08:00
committed by Richard Purdie
parent dc62b99bdf
commit b6f577e2e7
3 changed files with 63 additions and 0 deletions

View File

@@ -14,6 +14,8 @@ 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-20-resolv.conf-improve-the-sitation-of-working-with-.patch \
file://0001-privsep-Allow-getrandom-sysctl-for-newer-glibc.patch \
file://0002-privsep-Allow-newfstatat-syscall-as-well.patch \
file://dhcpcd.service \
file://dhcpcd@.service \
"

View File

@@ -0,0 +1,30 @@
From c6cdf0aee71ab4126d36b045f02428ee3c6ec50b Mon Sep 17 00:00:00 2001
From: Roy Marples <roy@marples.name>
Date: Fri, 26 Aug 2022 09:08:36 +0100
Subject: [PATCH 1/2] privsep: Allow getrandom sysctl for newer glibc
Fixes #120
Upstream-Status: Backport [c6cdf0aee71ab4126d36b045f02428ee3c6ec50b]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
src/privsep-linux.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/privsep-linux.c b/src/privsep-linux.c
index b238644b..479a1d82 100644
--- a/src/privsep-linux.c
+++ b/src/privsep-linux.c
@@ -300,6 +300,9 @@ static struct sock_filter ps_seccomp_filter[] = {
#ifdef __NR_getpid
SECCOMP_ALLOW(__NR_getpid),
#endif
+#ifdef __NR_getrandom
+ SECCOMP_ALLOW(__NR_getrandom),
+#endif
#ifdef __NR_getsockopt
/* For route socket overflow */
SECCOMP_ALLOW_ARG(__NR_getsockopt, 1, SOL_SOCKET),
--
2.17.1

View File

@@ -0,0 +1,31 @@
From 7625a555797f587a89dc2447fd9d621024d5165c Mon Sep 17 00:00:00 2001
From: Roy Marples <roy@marples.name>
Date: Fri, 26 Aug 2022 09:24:50 +0100
Subject: [PATCH 2/2] privsep: Allow newfstatat syscall as well
Allows newer glibc variants to work apparently.
As reported in #84 and #89.
Upstream-Status: Backport [7625a555797f587a89dc2447fd9d621024d5165c]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
src/privsep-linux.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/privsep-linux.c b/src/privsep-linux.c
index 479a1d82..6327b1bc 100644
--- a/src/privsep-linux.c
+++ b/src/privsep-linux.c
@@ -328,6 +328,9 @@ static struct sock_filter ps_seccomp_filter[] = {
#ifdef __NR_nanosleep
SECCOMP_ALLOW(__NR_nanosleep), /* XXX should use ppoll instead */
#endif
+#ifdef __NR_newfstatat
+ SECCOMP_ALLOW(__NR_newfstatat),
+#endif
#ifdef __NR_ppoll
SECCOMP_ALLOW(__NR_ppoll),
#endif
--
2.17.1