sys-apps/systemd: Bump version 248.3

This commit is contained in:
2021-06-17 15:59:32 +03:00
parent f60acaa537
commit fea1d608b8
42 changed files with 1130 additions and 1273 deletions

View File

@@ -1,81 +0,0 @@
From 564830719be2017c4953589d50f21a9e856a4ecc Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Thu, 21 Feb 2019 16:23:24 +0800
Subject: [PATCH] binfmt: Don't install dependency links at install time for
the binfmt services
use [Install] blocks so that they get created when the service is enabled
like a traditional service.
The [Install] blocks were rejected upstream as they don't have a way to
"enable" it on install without static symlinks which can't be disabled,
only masked. We however can do that in a postinst.
Upstream-Status: Denied
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
units/meson.build | 6 ++----
units/proc-sys-fs-binfmt_misc.automount | 3 +++
units/systemd-binfmt.service.in | 4 ++++
3 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/units/meson.build b/units/meson.build
index ea91f0cc9ea7..25186f88dfeb 100644
--- a/units/meson.build
+++ b/units/meson.build
@@ -52,8 +52,7 @@ units = [
['poweroff.target', '',
'runlevel0.target'],
['printer.target', ''],
- ['proc-sys-fs-binfmt_misc.automount', 'ENABLE_BINFMT',
- 'sysinit.target.wants/'],
+ ['proc-sys-fs-binfmt_misc.automount', 'ENABLE_BINFMT'],
['proc-sys-fs-binfmt_misc.mount', 'ENABLE_BINFMT'],
['reboot.target', '',
'runlevel6.target ctrl-alt-del.target'],
@@ -161,8 +160,7 @@ in_units = [
['rc-local.service', 'HAVE_SYSV_COMPAT'],
['rescue.service', ''],
['systemd-backlight@.service', 'ENABLE_BACKLIGHT'],
- ['systemd-binfmt.service', 'ENABLE_BINFMT',
- 'sysinit.target.wants/'],
+ ['systemd-binfmt.service', 'ENABLE_BINFMT'],
['systemd-bless-boot.service', 'ENABLE_EFI HAVE_BLKID'],
['systemd-boot-check-no-failures.service', ''],
['systemd-coredump@.service', 'ENABLE_COREDUMP'],
diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount
index 30a6bc991844..4231f3b70fe9 100644
--- a/units/proc-sys-fs-binfmt_misc.automount
+++ b/units/proc-sys-fs-binfmt_misc.automount
@@ -18,3 +18,6 @@ ConditionPathIsReadWrite=/proc/sys/
[Automount]
Where=/proc/sys/fs/binfmt_misc
+
+[Install]
+WantedBy=sysinit.target
diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in
index e54e95e11d5d..372a598614d3 100644
--- a/units/systemd-binfmt.service.in
+++ b/units/systemd-binfmt.service.in
@@ -14,6 +14,7 @@ Documentation=https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.htm
Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
DefaultDependencies=no
Conflicts=shutdown.target
+Wants=proc-sys-fs-binfmt_misc.automount
After=proc-sys-fs-binfmt_misc.automount
After=proc-sys-fs-binfmt_misc.mount
Before=sysinit.target shutdown.target
@@ -30,3 +31,6 @@ RemainAfterExit=yes
ExecStart=@rootlibexecdir@/systemd-binfmt
ExecStop=@rootlibexecdir@/systemd-binfmt --unregister
TimeoutSec=90s
+
+[Install]
+WantedBy=sysinit.target

View File

@@ -1,29 +0,0 @@
From 106922335ec502bcb4451c54a89be49f88fa54de Mon Sep 17 00:00:00 2001
From: Scott Murray <scott.murray@konsulko.com>
Date: Fri, 13 Sep 2019 19:26:27 -0400
Subject: [PATCH] Include sys/wait.h
Fixes:
src/login/logind-brightness.c:158:85: error: 'WEXITED' undeclared (first use in this function); did you mean 'WIFEXITED'?
158 | r = sd_event_add_child(w->manager->event, &w->child_event_source, w->child, WEXITED, on_brightness_writer_exit, w);
| ^~~~~~~
Upstream-Status: Pending
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
src/login/logind-brightness.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/login/logind-brightness.c b/src/login/logind-brightness.c
index 3f4b65e1fdf1..5af7e3d5ce3f 100644
--- a/src/login/logind-brightness.c
+++ b/src/login/logind-brightness.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <sys/wait.h>
#include "bus-util.h"
#include "device-util.h"
#include "hash-funcs.h"

View File

@@ -1,31 +0,0 @@
From 082d2eb2a65525890a913723764e67a36ee75384 Mon Sep 17 00:00:00 2001
From: Scott Murray <scott.murray@konsulko.com>
Date: Fri, 13 Sep 2019 19:26:27 -0400
Subject: [PATCH] Include signal.h
Fixes several signal set related errors:
src/basic/copy.c:92:19: error: implicit declaration of function 'sigemptyset' [-Werror=implicit-function-declaration]
src/basic/copy.c:93:19: error: implicit declaration of function 'sigaddset' [-Werror=implicit-function-declaration]
src/basic/copy.c:93:34: error: 'SIGINT' undeclared (first use in this function)
src/basic/copy.c:95:13: error: implicit declaration of function 'sigtimedwait' [-Werror=implicit-function-declaration]
Upstream-Status: Pending
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
src/basic/copy.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/basic/copy.c b/src/basic/copy.c
index 9028868f696d..5168586fa522 100644
--- a/src/basic/copy.c
+++ b/src/basic/copy.c
@@ -8,6 +8,7 @@
#include <sys/sendfile.h>
#include <sys/xattr.h>
#include <unistd.h>
+#include <signal.h>
#include "alloc-util.h"
#include "btrfs-util.h"

View File

@@ -1,228 +0,0 @@
diff -ur systemd-stable-245.5/src/basic/socket-util.h systemd-stable-245.5.new/src/basic/socket-util.h
--- systemd-stable-245.5/src/basic/socket-util.h 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/basic/socket-util.h 2020-06-30 11:39:12.196587133 +0000
@@ -2,6 +2,7 @@
#pragma once
#include <inttypes.h>
+#include <netinet/if_ether.h>
#include <linux/netlink.h>
#include <linux/if_ether.h>
#include <linux/if_infiniband.h>
diff -ur systemd-stable-245.5/src/libsystemd/sd-netlink/netlink-types.c systemd-stable-245.5.new/src/libsystemd/sd-netlink/netlink-types.c
--- systemd-stable-245.5/src/libsystemd/sd-netlink/netlink-types.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/libsystemd/sd-netlink/netlink-types.c 2020-06-30 11:38:29.976587133 +0000
@@ -3,6 +3,7 @@
#include <netinet/in.h>
#include <stdint.h>
#include <sys/socket.h>
+#include <netinet/if_ether.h>
#include <linux/can/vxcan.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
diff -ur systemd-stable-245.5/src/libsystemd-network/sd-dhcp6-client.c systemd-stable-245.5.new/src/libsystemd-network/sd-dhcp6-client.c
--- systemd-stable-245.5/src/libsystemd-network/sd-dhcp6-client.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/libsystemd-network/sd-dhcp6-client.c 2020-06-30 11:38:29.976587133 +0000
@@ -5,7 +5,6 @@
#include <errno.h>
#include <sys/ioctl.h>
-#include <linux/if_arp.h>
#include <linux/if_infiniband.h>
#include "sd-dhcp6-client.h"
diff -ur systemd-stable-245.5/src/machine/machine-dbus.c systemd-stable-245.5.new/src/machine/machine-dbus.c
--- systemd-stable-245.5/src/machine/machine-dbus.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/machine/machine-dbus.c 2020-06-30 11:38:29.976587133 +0000
@@ -3,6 +3,7 @@
#include <errno.h>
#include <sys/mount.h>
#include <sys/wait.h>
+#include <netinet/if_ether.h>
/* When we include libgen.h because we need dirname() we immediately
* undefine basename() since libgen.h defines it as a macro to the POSIX
diff -ur systemd-stable-245.5/src/network/netdev/bond.c systemd-stable-245.5.new/src/network/netdev/bond.c
--- systemd-stable-245.5/src/network/netdev/bond.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/network/netdev/bond.c 2020-06-30 11:38:29.976587133 +0000
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include "alloc-util.h"
#include "bond.h"
#include "conf-parser.h"
diff -ur systemd-stable-245.5/src/network/netdev/bridge.c systemd-stable-245.5.new/src/network/netdev/bridge.c
--- systemd-stable-245.5/src/network/netdev/bridge.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/network/netdev/bridge.c 2020-06-30 11:38:29.976587133 +0000
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include "bridge.h"
diff -ur systemd-stable-245.5/src/network/netdev/macsec.c systemd-stable-245.5.new/src/network/netdev/macsec.c
--- systemd-stable-245.5/src/network/netdev/macsec.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/network/netdev/macsec.c 2020-06-30 11:38:29.976587133 +0000
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <linux/if_ether.h>
#include <linux/if_macsec.h>
diff -ur systemd-stable-245.5/src/network/netdev/netdev-gperf.gperf systemd-stable-245.5.new/src/network/netdev/netdev-gperf.gperf
--- systemd-stable-245.5/src/network/netdev/netdev-gperf.gperf 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/network/netdev/netdev-gperf.gperf 2020-06-30 11:38:29.976587133 +0000
@@ -2,6 +2,7 @@
#if __GNUC__ >= 7
_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"")
#endif
+#include <netinet/if_ether.h>
#include <stddef.h>
#include "bond.h"
#include "bridge.h"
diff -ur systemd-stable-245.5/src/network/netdev/netdev.c systemd-stable-245.5.new/src/network/netdev/netdev.c
--- systemd-stable-245.5/src/network/netdev/netdev.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/network/netdev/netdev.c 2020-06-30 11:38:29.976587133 +0000
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include <netinet/in.h>
diff -ur systemd-stable-245.5/src/network/networkd-brvlan.c systemd-stable-245.5.new/src/network/networkd-brvlan.c
--- systemd-stable-245.5/src/network/networkd-brvlan.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/network/networkd-brvlan.c 2020-06-30 11:38:29.976587133 +0000
@@ -4,6 +4,7 @@
***/
#include <netinet/in.h>
+#include <netinet/if_ether.h>
#include <linux/if_bridge.h>
#include <stdbool.h>
diff -ur systemd-stable-245.5/src/network/networkd-dhcp-common.c systemd-stable-245.5.new/src/network/networkd-dhcp-common.c
--- systemd-stable-245.5/src/network/networkd-dhcp-common.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/network/networkd-dhcp-common.c 2020-06-30 11:38:29.986587133 +0000
@@ -4,6 +4,7 @@
#include "escape.h"
#include "in-addr-util.h"
#include "networkd-dhcp-common.h"
+#include <netinet/if_ether.h>
#include "networkd-network.h"
#include "parse-util.h"
#include "string-table.h"
diff -ur systemd-stable-245.5/src/network/networkd-dhcp4.c systemd-stable-245.5.new/src/network/networkd-dhcp4.c
--- systemd-stable-245.5/src/network/networkd-dhcp4.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/network/networkd-dhcp4.c 2020-06-30 11:38:29.986587133 +0000
@@ -1,9 +1,9 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
#include "alloc-util.h"
#include "dhcp-client-internal.h"
diff -ur systemd-stable-245.5/src/network/networkd-dhcp6.c systemd-stable-245.5.new/src/network/networkd-dhcp6.c
--- systemd-stable-245.5/src/network/networkd-dhcp6.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/network/networkd-dhcp6.c 2020-06-30 11:38:29.986587133 +0000
@@ -3,9 +3,9 @@
Copyright © 2014 Intel Corporation. All rights reserved.
***/
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
#include "sd-radv.h"
#include "sd-dhcp6-client.h"
diff -ur systemd-stable-245.5/src/network/networkd-link.c systemd-stable-245.5.new/src/network/networkd-link.c
--- systemd-stable-245.5/src/network/networkd-link.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/network/networkd-link.c 2020-06-30 11:38:29.986587133 +0000
@@ -1,8 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
#include <unistd.h>
#include "alloc-util.h"
diff -ur systemd-stable-245.5/src/network/networkd-network.c systemd-stable-245.5.new/src/network/networkd-network.c
--- systemd-stable-245.5/src/network/networkd-network.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/network/networkd-network.c 2020-06-30 11:38:29.986587133 +0000
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include <netinet/in.h>
#include <linux/netdevice.h>
diff -ur systemd-stable-245.5/src/network/test-network-tables.c systemd-stable-245.5.new/src/network/test-network-tables.c
--- systemd-stable-245.5/src/network/test-network-tables.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/network/test-network-tables.c 2020-06-30 11:38:29.986587133 +0000
@@ -1,3 +1,4 @@
+#include <netinet/if_ether.h>
#include "bond.h"
#include "dhcp6-internal.h"
#include "dhcp6-protocol.h"
diff -ur systemd-stable-245.5/src/shared/ethtool-util.c systemd-stable-245.5.new/src/shared/ethtool-util.c
--- systemd-stable-245.5/src/shared/ethtool-util.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/shared/ethtool-util.c 2020-06-30 11:38:29.986587133 +0000
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include <sys/ioctl.h>
#include <linux/ethtool.h>
diff -ur systemd-stable-245.5/src/shared/ethtool-util.h systemd-stable-245.5.new/src/shared/ethtool-util.h
--- systemd-stable-245.5/src/shared/ethtool-util.h 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/shared/ethtool-util.h 2020-06-30 11:38:29.986587133 +0000
@@ -3,6 +3,7 @@
#include <macro.h>
#include <net/ethernet.h>
+#include <netinet/if_ether.h>
#include <linux/ethtool.h>
#include "conf-parser.h"
diff -ur systemd-stable-245.5/src/systemd/sd-netlink.h systemd-stable-245.5.new/src/systemd/sd-netlink.h
--- systemd-stable-245.5/src/systemd/sd-netlink.h 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/systemd/sd-netlink.h 2020-06-30 11:34:24.046587133 +0000
@@ -18,6 +18,7 @@
***/
#include <inttypes.h>
+#include <netinet/if_ether.h>
#include <net/ethernet.h>
#include <netinet/in.h>
#include <linux/neighbour.h>
diff -ur systemd-stable-245.5/src/udev/net/link-config.c systemd-stable-245.5.new/src/udev/net/link-config.c
--- systemd-stable-245.5/src/udev/net/link-config.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/udev/net/link-config.c 2020-06-30 11:38:29.986587133 +0000
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <linux/netdevice.h>
#include <netinet/ether.h>
diff -ur systemd-stable-245.5/src/udev/udev-builtin-net_setup_link.c systemd-stable-245.5.new/src/udev/udev-builtin-net_setup_link.c
--- systemd-stable-245.5/src/udev/udev-builtin-net_setup_link.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/udev/udev-builtin-net_setup_link.c 2020-06-30 11:38:29.986587133 +0000
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include "device-util.h"
#include "alloc-util.h"
#include "link-config.h"

View File

@@ -1,50 +0,0 @@
diff -ur systemd-stable-245.5/src/basic/missing_type.h systemd-stable-245.5.new/src/basic/missing_type.h
--- systemd-stable-245.5/src/basic/missing_type.h 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/basic/missing_type.h 2020-06-30 12:13:34.326587133 +0000
@@ -10,3 +10,23 @@
#if !HAVE_CHAR16_T
#define char16_t uint16_t
#endif
+
+#ifndef FTW_ACTIONRETVAL
+#define FTW_ACTIONRETVAL 16
+#endif
+
+#ifndef FTW_CONTINUE
+#define FTW_CONTINUE 0
+#endif
+
+#ifndef FTW_STOP
+#define FTW_STOP 1
+#endif
+
+#ifndef FTW_SKIP_SUBTREE
+#define FTW_SKIP_SUBTREE 2
+#endif
+
+#ifndef FTW_SKIP_SIBLINGS
+#define FTW_SKIP_SIBLINGS 3
+#endif
Only in systemd-stable-245.5.new/src/basic: missing_type.h.orig
diff -ur systemd-stable-245.5/src/core/kmod-setup.c systemd-stable-245.5.new/src/core/kmod-setup.c
--- systemd-stable-245.5/src/core/kmod-setup.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/core/kmod-setup.c 2020-06-30 12:16:43.286587133 +0000
@@ -9,6 +9,7 @@
#include "fileio.h"
#include "kmod-setup.h"
#include "macro.h"
+#include "missing_type.h"
#include "string-util.h"
#if HAVE_KMOD
diff -ur systemd-stable-245.5/src/core/mount-setup.c systemd-stable-245.5.new/src/core/mount-setup.c
--- systemd-stable-245.5/src/core/mount-setup.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/core/mount-setup.c 2020-06-30 12:15:46.596587133 +0000
@@ -21,6 +21,7 @@
#include "label.h"
#include "log.h"
#include "macro.h"
+#include "missing_type.h"
#include "mkdir.h"
#include "mount-setup.h"
#include "mountpoint-util.h"

View File

@@ -1,38 +0,0 @@
diff -ur systemd-stable-245.5/src/basic/selinux-util.c systemd-stable-245.5.new/src/basic/selinux-util.c
--- systemd-stable-245.5/src/basic/selinux-util.c 2020-04-17 12:37:12.000000000 +0000
+++ systemd-stable-245.5.new/src/basic/selinux-util.c 2020-06-30 13:33:03.366587133 +0000
@@ -60,7 +60,6 @@
#if HAVE_SELINUX
usec_t before_timestamp, after_timestamp;
- struct mallinfo before_mallinfo, after_mallinfo;
if (label_hnd)
return 0;
@@ -68,7 +67,6 @@
if (!mac_selinux_use())
return 0;
- before_mallinfo = mallinfo();
before_timestamp = now(CLOCK_MONOTONIC);
label_hnd = selabel_open(SELABEL_CTX_FILE, NULL, 0);
@@ -77,16 +75,11 @@
r = security_getenforce() == 1 ? -errno : 0;
} else {
char timespan[FORMAT_TIMESPAN_MAX];
- int l;
after_timestamp = now(CLOCK_MONOTONIC);
- after_mallinfo = mallinfo();
- l = after_mallinfo.uordblks > before_mallinfo.uordblks ? after_mallinfo.uordblks - before_mallinfo.uordblks : 0;
-
- log_debug("Successfully loaded SELinux database in %s, size on heap is %iK.",
- format_timespan(timespan, sizeof(timespan), after_timestamp - before_timestamp, 0),
- (l+1023)/1024);
+ log_debug("Successfully loaded SELinux database in %s",
+ format_timespan(timespan, sizeof(timespan), after_timestamp - before_timestamp, 0));
}
#endif

View File

@@ -1,96 +0,0 @@
From 156a5fd297b61bce31630d7a52c15614bf784843 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Sun, 31 May 2020 18:21:09 +0200
Subject: [PATCH 1/1] basic/user-util: always use base 10 for user/group
numbers
We would parse numbers with base prefixes as user identifiers. For example,
"0x2b3bfa0" would be interpreted as UID==45334432 and "01750" would be
interpreted as UID==1000. This parsing was used also in cases where either a
user/group name or number may be specified. This means that names like
0x2b3bfa0 would be ambiguous: they are a valid user name according to our
documented relaxed rules, but they would also be parsed as numeric uids.
This behaviour is definitely not expected by users, since tools generally only
accept decimal numbers (e.g. id, getent passwd), while other tools only accept
user names and thus will interpret such strings as user names without even
attempting to convert them to numbers (su, ssh). So let's follow suit and only
accept numbers in decimal notation. Effectively this means that we will reject
such strings as a username/uid/groupname/gid where strict mode is used, and try
to look up a user/group with such a name in relaxed mode.
Since the function changed is fairly low-level and fairly widely used, this
affects multiple tools: loginctl show-user/enable-linger/disable-linger foo',
the third argument in sysusers.d, fourth and fifth arguments in tmpfiles.d,
etc.
Fixes #15985.
---
src/basic/user-util.c | 2 +-
src/test/test-user-util.c | 10 ++++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
--- end of commit 156a5fd297b61bce31630d7a52c15614bf784843 ---
Add definition of safe_atou32_full() from commit b934ac3d6e7dcad114776ef30ee9098693e7ab7e
CVE: CVE-2020-13776
Upstream-Status: Backport [https://github.com/systemd/systemd.git]
Signed-off-by: Joe Slater <joe.slater@windriver.com>
--- git.orig/src/basic/user-util.c
+++ git/src/basic/user-util.c
@@ -49,7 +49,7 @@ int parse_uid(const char *s, uid_t *ret)
assert(s);
assert_cc(sizeof(uid_t) == sizeof(uint32_t));
- r = safe_atou32(s, &uid);
+ r = safe_atou32_full(s, 10, &uid);
if (r < 0)
return r;
--- git.orig/src/test/test-user-util.c
+++ git/src/test/test-user-util.c
@@ -48,9 +48,19 @@ static void test_parse_uid(void) {
r = parse_uid("65535", &uid);
assert_se(r == -ENXIO);
+ assert_se(uid == 100);
+
+ r = parse_uid("0x1234", &uid);
+ assert_se(r == -EINVAL);
+ assert_se(uid == 100);
+
+ r = parse_uid("01234", &uid);
+ assert_se(r == 0);
+ assert_se(uid == 1234);
r = parse_uid("asdsdas", &uid);
assert_se(r == -EINVAL);
+ assert_se(uid == 1234);
}
static void test_uid_ptr(void) {
--- git.orig/src/basic/parse-util.h
+++ git/src/basic/parse-util.h
@@ -45,9 +45,13 @@ static inline int safe_atoux16(const cha
int safe_atoi16(const char *s, int16_t *ret);
-static inline int safe_atou32(const char *s, uint32_t *ret_u) {
+static inline int safe_atou32_full(const char *s, unsigned base, uint32_t *ret_u) {
assert_cc(sizeof(uint32_t) == sizeof(unsigned));
- return safe_atou(s, (unsigned*) ret_u);
+ return safe_atou_full(s, base, (unsigned*) ret_u);
+}
+
+static inline int safe_atou32(const char *s, uint32_t *ret_u) {
+ return safe_atou32_full(s, 0, (unsigned*) ret_u);
}
static inline int safe_atoi32(const char *s, int32_t *ret_i) {

View File

@@ -1,30 +0,0 @@
From: Martin Pitt <martin.pitt@ubuntu.com>
Date: Sun, 28 Dec 2014 12:49:35 +0100
Subject: Don't enable audit by default
It causes flooding of dmesg and syslog, suppressing actually important
messages.
Don't enable it for now, until a better solution is found:
http://lists.freedesktop.org/archives/systemd-devel/2014-December/026591.html
Bug-Debian: https://bugs.debian.org/773528
---
src/journal/journald-audit.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/src/journal/journald-audit.c b/src/journal/journald-audit.c
index 69742fa..25ef743 100644
--- a/src/journal/journald-audit.c
+++ b/src/journal/journald-audit.c
@@ -542,10 +542,5 @@ int server_open_audit(Server *s) {
if (r < 0)
return log_error_errno(r, "Failed to add audit fd to event loop: %m");
- /* We are listening now, try to enable audit */
- r = enable_audit(s->audit_fd, true);
- if (r < 0)
- log_warning_errno(r, "Failed to issue audit enable call: %m");
-
return 0;
}

View File

@@ -1,27 +0,0 @@
From 3c7918deafa34313b935851171279d8fdb5cfadb Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Tue, 25 Dec 2018 22:52:50 -0500
Subject: [PATCH] path-lookup: look for generators in
{,/usr}/lib/systemd/system-generators
Bug: https://bugs.gentoo.org/625402
---
src/shared/path-lookup.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c
index 442fde7b2d..6814164504 100644
--- a/src/shared/path-lookup.c
+++ b/src/shared/path-lookup.c
@@ -888,6 +888,8 @@ char **generator_binary_paths(UnitFileScope scope) {
return strv_new("/run/systemd/system-generators",
"/etc/systemd/system-generators",
"/usr/local/lib/systemd/system-generators",
+ "/usr/lib/systemd/system-generators",
+ "/lib/systemd/system-generators",
SYSTEM_GENERATOR_PATH);
case UNIT_FILE_GLOBAL:
--
2.20.1

View File

@@ -0,0 +1,26 @@
From 91182cc273d2dd8325d856fd683d2d8e038abd91 Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Tue, 25 Dec 2018 22:52:50 -0500
Subject: [PATCH] path-lookup: look for generators in
/usr/lib/systemd/system-generators
Bug: https://bugs.gentoo.org/625402
---
src/basic/path-lookup.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
index 52968dee34..0cb10b1116 100644
--- a/src/basic/path-lookup.c
+++ b/src/basic/path-lookup.c
@@ -798,6 +798,7 @@ char **generator_binary_paths(UnitFileScope scope) {
add = strv_new("/run/systemd/system-generators",
"/etc/systemd/system-generators",
"/usr/local/lib/systemd/system-generators",
+ "/usr/lib/systemd/system-generators",
SYSTEM_GENERATOR_DIR);
break;
--
2.26.1

View File

@@ -0,0 +1,40 @@
From 593db1c78011ddce551051ce17eda6feac079b3d Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Fri, 21 Aug 2020 13:16:17 -0400
Subject: [PATCH] journald: do not change the kernel audit setting by default
Bug: https://bugs.gentoo.org/736910
---
man/journald.conf.xml | 2 +-
src/journal/journald-server.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/man/journald.conf.xml b/man/journald.conf.xml
index bfd359a903..7e93d4050e 100644
--- a/man/journald.conf.xml
+++ b/man/journald.conf.xml
@@ -411,7 +411,7 @@
<command>systemd-journald</command> collects generated audit records, it just controls whether it
tells the kernel to generate them. This means if another tool turns on auditing even if
<command>systemd-journald</command> left it off, it will still collect the generated
- messages. Defaults to on.</para></listitem>
+ messages.</para></listitem>
</varlistentry>
<varlistentry>
diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
index 5865bf9809..163be685a8 100644
--- a/src/journal/journald-server.c
+++ b/src/journal/journald-server.c
@@ -2208,7 +2208,7 @@ int server_init(Server *s, const char *namespace) {
.compress.threshold_bytes = (uint64_t) -1,
.seal = true,
- .set_audit = true,
+ .set_audit = -1,
.watchdog_usec = USEC_INFINITY,
--
2.28.0

View File

@@ -0,0 +1,33 @@
From b744751e2ced66c2ec191e8bd490cb9bdffc630a Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Tue, 3 Nov 2020 10:42:51 -0500
Subject: [PATCH] pam: include system-auth for systemd --user
---
src/login/systemd-user.m4 | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/login/systemd-user.m4 b/src/login/systemd-user.m4
index f6313f79fe..bcf84b4c64 100644
--- a/src/login/systemd-user.m4
+++ b/src/login/systemd-user.m4
@@ -5,7 +5,7 @@
m4_ifdef(`ENABLE_HOMED',
-account sufficient pam_systemd_home.so
)m4_dnl
-account sufficient pam_unix.so
+account include system-auth
account required pam_permit.so
m4_ifdef(`HAVE_SELINUX',
@@ -13,6 +13,7 @@ session required pam_selinux.so close
session required pam_selinux.so nottys open
)m4_dnl
session required pam_loginuid.so
+session include system-auth
session optional pam_keyinit.so force revoke
m4_ifdef(`ENABLE_HOMED',
-session optional pam_systemd_home.so
--
2.29.0

View File

@@ -0,0 +1,25 @@
From d9059d2ef1b0d6034267cc8ff44871d0f82f840f Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Sun, 8 Nov 2020 12:34:11 -0500
Subject: [PATCH] systemctl: disable synchronizaion of sysv init scripts
---
src/systemctl/systemctl-sysv-compat.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/systemctl/systemctl-sysv-compat.c b/src/systemctl/systemctl-sysv-compat.c
index 2dca9e480f..5dcf13ba17 100644
--- a/src/systemctl/systemctl-sysv-compat.c
+++ b/src/systemctl/systemctl-sysv-compat.c
@@ -111,7 +111,7 @@ int parse_shutdown_time_spec(const char *t, usec_t *ret) {
int enable_sysv_units(const char *verb, char **args) {
int r = 0;
-#if HAVE_SYSV_COMPAT
+#if 0
_cleanup_(lookup_paths_free) LookupPaths paths = {};
unsigned f = 0;
--
2.29.0

View File

@@ -1,25 +0,0 @@
From 7ccd5724afc6fa83ec6cd93dbaf4faf3671c88fc Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Mon, 27 Apr 2020 10:22:03 -0400
Subject: [PATCH] systemctl: disable synchronizaion of sysv init scripts
---
src/systemctl/systemctl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index d319d5d375..bb8419800c 100644
--- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c
@@ -6622,7 +6622,7 @@ static int import_environment(int argc, char *argv[], void *userdata) {
static int enable_sysv_units(const char *verb, char **args) {
int r = 0;
-#if HAVE_SYSV_COMPAT
+#if 0
_cleanup_(lookup_paths_free) LookupPaths paths = {};
unsigned f = 0;
--
2.26.2

View File

@@ -1,16 +0,0 @@
--- a/src/login/systemd-user.m4
+++ b/src/login/systemd-user.m4
@@ -2,11 +2,7 @@
#
# Used by systemd --user instances.
-account required pam_unix.so
-m4_ifdef(`HAVE_SELINUX',
-session required pam_selinux.so close
-session required pam_selinux.so nottys open
-)m4_dnl
-session required pam_loginuid.so
+account include system-auth
+session include system-auth
session optional pam_keyinit.so force revoke
session optional pam_systemd.so

View File

@@ -1,4 +1,4 @@
From 3eb12a6ba0bce149717eaabeb1505d379b3d705a Mon Sep 17 00:00:00 2001
From 159c53612444ec1df492bae528a5a88a275b93bf Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 13:41:41 +0800
Subject: [PATCH] don't use glibc-specific qsort_r
@@ -10,6 +10,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[Rebased for v242]
Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
[Rebased for v247]
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
---
src/basic/sort-util.h | 14 ------------
@@ -18,14 +20,13 @@ Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
3 files changed, 38 insertions(+), 31 deletions(-)
diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
index e029f8646eb0..27d68b341cf3 100644
index 49586a4a24..d92a5ab0ed 100644
--- a/src/basic/sort-util.h
+++ b/src/basic/sort-util.h
@@ -54,17 +54,3 @@ static inline void qsort_safe(void *base, size_t nmemb, size_t size, __compar_fn
int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = func; \
qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \
@@ -55,18 +55,4 @@ static inline void _qsort_safe(void *base, size_t nmemb, size_t size, __compar_f
_qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \
})
-
-static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, __compar_d_fn_t compar, void *userdata) {
- if (nmemb <= 1)
- return;
@@ -39,11 +40,13 @@ index e029f8646eb0..27d68b341cf3 100644
- int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \
- qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \
- })
-
int cmp_int(const int *a, const int *b);
diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c b/src/libsystemd/sd-hwdb/hwdb-util.c
index d790e8fd0b19..42e0fd7c9b3c 100644
index fd45ff0f54..ac4b63c49b 100644
--- a/src/libsystemd/sd-hwdb/hwdb-util.c
+++ b/src/libsystemd/sd-hwdb/hwdb-util.c
@@ -128,9 +128,13 @@ static void trie_free(struct trie *trie) {
@@ -126,9 +126,13 @@ static struct trie* trie_free(struct trie *trie) {
DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
@@ -60,7 +63,7 @@ index d790e8fd0b19..42e0fd7c9b3c 100644
}
static int trie_node_add_value(struct trie *trie, struct trie_node *node,
@@ -158,7 +162,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
@@ -156,7 +160,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
.value_off = v,
};
@@ -72,7 +75,7 @@ index d790e8fd0b19..42e0fd7c9b3c 100644
if (val) {
/* At this point we have 2 identical properties on the same match-string.
* Since we process files in order, we just replace the previous value. */
@@ -184,7 +191,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
@@ -182,7 +189,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
.line_number = line_number,
};
node->values_count++;
@@ -84,10 +87,10 @@ index d790e8fd0b19..42e0fd7c9b3c 100644
}
diff --git a/src/shared/format-table.c b/src/shared/format-table.c
index 425013046491..33c1c5a12d43 100644
index dccb796b26..c3ab8ac296 100644
--- a/src/shared/format-table.c
+++ b/src/shared/format-table.c
@@ -1164,31 +1164,33 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t
@@ -1290,30 +1290,32 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t
return CMP(index_a, index_b);
}
@@ -95,7 +98,6 @@ index 425013046491..33c1c5a12d43 100644
+static Table *user_table;
+static int table_data_compare(const void *x, const void *y) {
+ const size_t *a = x, *b=y;
size_t i;
int r;
- assert(t);
@@ -115,8 +117,8 @@ index 425013046491..33c1c5a12d43 100644
return 1;
/* Order other lines by the sorting map */
- for (i = 0; i < t->n_sort_map; i++) {
+ for (i = 0; i < user_table->n_sort_map; i++) {
- for (size_t i = 0; i < t->n_sort_map; i++) {
+ for (size_t i = 0; i < user_table->n_sort_map; i++) {
TableData *d, *dd;
- d = t->data[*a + t->sort_map[i]];
@@ -131,8 +133,8 @@ index 425013046491..33c1c5a12d43 100644
}
/* Order identical lines by the order there were originally added in */
@@ -1690,7 +1692,12 @@ int table_print(Table *t, FILE *f) {
for (i = 0; i < n_rows; i++)
@@ -1952,7 +1954,12 @@ int table_print(Table *t, FILE *f) {
for (size_t i = 0; i < n_rows; i++)
sorted[i] = i * t->n_columns;
- typesafe_qsort_r(sorted, n_rows, table_data_compare, t);
@@ -145,8 +147,8 @@ index 425013046491..33c1c5a12d43 100644
}
if (t->display_map)
@@ -2236,7 +2243,12 @@ int table_to_json(Table *t, JsonVariant **ret) {
for (i = 0; i < n_rows; i++)
@@ -2580,7 +2587,12 @@ int table_to_json(Table *t, JsonVariant **ret) {
for (size_t i = 0; i < n_rows; i++)
sorted[i] = i * t->n_columns;
- typesafe_qsort_r(sorted, n_rows, table_data_compare, t);

View File

@@ -1,4 +1,4 @@
From 233de872b9b033ec842c2135152d2e006ac44c16 Mon Sep 17 00:00:00 2001
From 4afb8adc83348bf75964fc10af7902e04dd62637 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 13:55:12 +0800
Subject: [PATCH] missing_type.h: add __compare_fn_t and comparison_fn_t
@@ -15,14 +15,14 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
---
src/basic/missing_type.h | 9 +++++++++
src/basic/sort-util.h | 1 +
src/core/kmod-setup.c | 1 +
src/journal/catalog.c | 1 +
src/basic/missing_type.h | 9 +++++++++
src/basic/sort-util.h | 1 +
src/core/kmod-setup.c | 1 +
src/libsystemd/sd-journal/catalog.c | 1 +
4 files changed, 12 insertions(+)
diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
index bf8a6caa1b46..c487e65e7bde 100644
index f6233090a9..aeaf6ad5ec 100644
--- a/src/basic/missing_type.h
+++ b/src/basic/missing_type.h
@@ -10,3 +10,12 @@
@@ -39,7 +39,7 @@ index bf8a6caa1b46..c487e65e7bde 100644
+typedef int (*__compar_fn_t)(const void *, const void *);
+#endif
diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
index 27d68b341cf3..307ea4ac0e8e 100644
index d92a5ab0ed..a63867c716 100644
--- a/src/basic/sort-util.h
+++ b/src/basic/sort-util.h
@@ -4,6 +4,7 @@
@@ -51,7 +51,7 @@ index 27d68b341cf3..307ea4ac0e8e 100644
void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size,
__compar_d_fn_t compar, void *arg);
diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
index 128674327362..09ccd613e32c 100644
index 8a7f82812a..a56f12f47f 100644
--- a/src/core/kmod-setup.c
+++ b/src/core/kmod-setup.c
@@ -10,6 +10,7 @@
@@ -62,10 +62,10 @@ index 128674327362..09ccd613e32c 100644
#if HAVE_KMOD
#include "module-util.h"
diff --git a/src/journal/catalog.c b/src/journal/catalog.c
index 70b2c8b46c4e..d574a64586f1 100644
--- a/src/journal/catalog.c
+++ b/src/journal/catalog.c
diff --git a/src/libsystemd/sd-journal/catalog.c b/src/libsystemd/sd-journal/catalog.c
index aea3241d18..75e6c56a28 100644
--- a/src/libsystemd/sd-journal/catalog.c
+++ b/src/libsystemd/sd-journal/catalog.c
@@ -28,6 +28,7 @@
#include "string-util.h"
#include "strv.h"

View File

@@ -1,7 +1,7 @@
From 8af168cefca01f8f2da336f1c82620c284dc74f2 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 14:04:21 +0800
Subject: [PATCH] add fallback parse_printf_format implementation
From 6c18e5f9373da3e3b38f2c5727e2aefe07fcbbd9 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Sat, 22 May 2021 20:26:24 +0200
Subject: [PATCH] [PATCH] add fallback parse_printf_format implementation
Upstream-Status: Inappropriate [musl specific]
@@ -10,23 +10,22 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
meson.build | 1 +
src/basic/meson.build | 5 +
src/basic/parse-printf-format.c | 273 ++++++++++++++++++++++++++++++++
src/basic/parse-printf-format.h | 57 +++++++
src/basic/stdio-util.h | 2 +-
src/journal/journal-send.c | 2 +-
meson.build | 1 +
src/basic/meson.build | 5 +
src/basic/parse-printf-format.c | 273 +++++++++++++++++++++++
src/basic/parse-printf-format.h | 57 +++++
src/basic/stdio-util.h | 2 +-
src/libsystemd/sd-journal/journal-send.c | 2 +-
6 files changed, 338 insertions(+), 2 deletions(-)
create mode 100644 src/basic/parse-printf-format.c
create mode 100644 src/basic/parse-printf-format.h
diff --git a/meson.build b/meson.build
index fc216d22da24..a25996803d64 100644
index 27186d63a3..2abb7b3188 100644
--- a/meson.build
+++ b/meson.build
@@ -640,6 +640,7 @@ endif
@@ -675,6 +675,7 @@ endif
foreach header : ['crypt.h',
'linux/memfd.h',
'linux/vm_sockets.h',
@@ -35,24 +34,24 @@ index fc216d22da24..a25996803d64 100644
'valgrind/memcheck.h',
'valgrind/valgrind.h',
diff --git a/src/basic/meson.build b/src/basic/meson.build
index ccb22e159505..25c77ea6bc0e 100644
index 60ef801a25..aba2172edd 100644
--- a/src/basic/meson.build
+++ b/src/basic/meson.build
@@ -313,6 +313,11 @@ foreach item : [['af', af_list_txt, 'af', ''],
endforeach
@@ -341,6 +341,11 @@ endforeach
basic_sources += generated_gperf_headers
+
+if conf.get('HAVE_PRINTF_H') != 1
+ basic_sources += [files('parse-printf-format.c')]
+endif
+
basic_gcrypt_sources = files(
'gcrypt-util.c',
'gcrypt-util.h')
+
############################################################
arch_list = [
diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c
new file mode 100644
index 000000000000..49437e544540
index 0000000000..49437e5445
--- /dev/null
+++ b/src/basic/parse-printf-format.c
@@ -0,0 +1,273 @@
@@ -331,7 +330,7 @@ index 000000000000..49437e544540
+}
diff --git a/src/basic/parse-printf-format.h b/src/basic/parse-printf-format.h
new file mode 100644
index 000000000000..47be7522d7fa
index 0000000000..47be7522d7
--- /dev/null
+++ b/src/basic/parse-printf-format.h
@@ -0,0 +1,57 @@
@@ -393,11 +392,11 @@ index 000000000000..47be7522d7fa
+
+#endif /* HAVE_PRINTF_H */
diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h
index c3b9448d4f4f..2937aa13b178 100644
index 6dc1e72312..cea76b36cf 100644
--- a/src/basic/stdio-util.h
+++ b/src/basic/stdio-util.h
@@ -1,13 +1,13 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <printf.h>
@@ -411,10 +410,10 @@ index c3b9448d4f4f..2937aa13b178 100644
#define snprintf_ok(buf, len, fmt, ...) \
((size_t) snprintf(buf, len, fmt, __VA_ARGS__) < (len))
diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
index 912ecef73cce..43ed756bda53 100644
--- a/src/journal/journal-send.c
+++ b/src/journal/journal-send.c
diff --git a/src/libsystemd/sd-journal/journal-send.c b/src/libsystemd/sd-journal/journal-send.c
index fd3fd7ef9c..e8e6ad555b 100644
--- a/src/libsystemd/sd-journal/journal-send.c
+++ b/src/libsystemd/sd-journal/journal-send.c
@@ -2,7 +2,6 @@
#include <errno.h>
@@ -423,7 +422,7 @@ index 912ecef73cce..43ed756bda53 100644
#include <stddef.h>
#include <sys/un.h>
#include <unistd.h>
@@ -20,6 +19,7 @@
@@ -21,6 +20,7 @@
#include "stdio-util.h"
#include "string-util.h"
#include "tmpfile-util.h"
@@ -431,3 +430,6 @@ index 912ecef73cce..43ed756bda53 100644
#define SNDBUF_SIZE (8*1024*1024)
--
2.24.0

View File

@@ -1,4 +1,4 @@
From 85dcaad8f38521ec3dc580794072b601900eed84 Mon Sep 17 00:00:00 2001
From 6b0732ac7164914ce16e231e35980b849bdfc4c8 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 14:18:21 +0800
Subject: [PATCH] src/basic/missing.h: check for missing strndupa
@@ -15,6 +15,8 @@ Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
[rebased for systemd 244]
[Rebased for v247]
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
---
meson.build | 1 +
@@ -24,7 +26,9 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
src/basic/log.c | 1 +
src/basic/missing_stdlib.h | 12 ++++++++++++
src/basic/mkdir.c | 1 +
src/basic/mountpoint-util.c | 1 +
src/basic/parse-util.c | 1 +
src/basic/path-lookup.c | 1 +
src/basic/proc-cmdline.c | 1 +
src/basic/procfs-util.c | 1 +
src/basic/selinux-util.c | 1 +
@@ -39,12 +43,12 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
src/coredump/coredump-vacuum.c | 1 +
src/journal-remote/journal-remote-main.c | 1 +
src/journal/journalctl.c | 1 +
src/journal/sd-journal.c | 1 +
src/libsystemd/sd-bus/bus-message.c | 1 +
src/libsystemd/sd-bus/bus-objects.c | 1 +
src/libsystemd/sd-bus/bus-socket.c | 1 +
src/libsystemd/sd-bus/sd-bus.c | 1 +
src/libsystemd/sd-bus/test-bus-benchmark.c | 1 +
src/libsystemd/sd-journal/sd-journal.c | 1 +
src/locale/keymap-util.c | 1 +
src/login/pam_systemd.c | 1 +
src/network/generator/network-generator.c | 1 +
@@ -52,6 +56,7 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
src/nss-mymachines/nss-mymachines.c | 1 +
src/portable/portable.c | 1 +
src/resolve/resolvectl.c | 1 +
src/shared/bus-get-properties.c | 1 +
src/shared/bus-unit-procs.c | 1 +
src/shared/bus-unit-util.c | 1 +
src/shared/bus-util.c | 1 +
@@ -59,68 +64,57 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
src/shared/journal-importer.c | 1 +
src/shared/logs-show.c | 1 +
src/shared/pager.c | 1 +
src/shared/path-lookup.c | 1 +
src/shared/uid-range.c | 1 +
src/socket-proxy/socket-proxyd.c | 1 +
src/test/test-hexdecoct.c | 1 +
src/udev/udev-builtin-path_id.c | 1 +
src/udev/udev-event.c | 1 +
src/udev/udev-rules.c | 1 +
49 files changed, 60 insertions(+)
51 files changed, 62 insertions(+)
diff --git a/meson.build b/meson.build
index a25996803d64..72b305b5ab58 100644
--- a/meson.build
+++ b/meson.build
@@ -529,6 +529,7 @@ foreach ident : [
#include <unistd.h>
#include <signal.h>
#include <sys/wait.h>'''],
@@ -550,6 +550,7 @@ foreach ident : [
['execveat', '''#include <unistd.h>'''],
['close_range', '''#include <unistd.h>'''],
['epoll_pwait2', '''#include <sys/epoll.h>'''],
+ ['strndupa' , '''#include <string.h>'''],
]
have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
index 048441429025..01d74ea0ed4e 100644
--- a/src/backlight/backlight.c
+++ b/src/backlight/backlight.c
@@ -17,6 +17,7 @@
@@ -19,6 +19,7 @@
#include "string-util.h"
#include "strv.h"
#include "util.h"
+#include "missing_stdlib.h"
static int find_pci_or_platform_parent(sd_device *device, sd_device **ret) {
const char *subsystem, *sysname, *value;
diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
index 54fc6ecf8b20..a5141f4cbedd 100644
static int help(void) {
_cleanup_free_ char *link = NULL;
--- a/src/basic/cgroup-util.c
+++ b/src/basic/cgroup-util.c
@@ -37,6 +37,7 @@
#include "strv.h"
@@ -38,6 +38,7 @@
#include "unit-name.h"
#include "user-util.h"
#include "xattr-util.h"
+#include "missing_stdlib.h"
static int cg_enumerate_items(const char *controller, const char *path, FILE **_f, const char *item) {
_cleanup_free_ char *fs = NULL;
diff --git a/src/basic/env-util.c b/src/basic/env-util.c
index b8dc98915f81..5049b37594bc 100644
--- a/src/basic/env-util.c
+++ b/src/basic/env-util.c
@@ -15,6 +15,7 @@
@@ -18,6 +18,7 @@
#include "string-util.h"
#include "strv.h"
#include "utf8.h"
+#include "missing_stdlib.h"
#define VALID_CHARS_ENV_NAME \
DIGITS LETTERS \
diff --git a/src/basic/log.c b/src/basic/log.c
index 17557e1844b2..6cec4d324aab 100644
/* We follow bash for the character set. Different shells have different rules. */
#define VALID_BASH_ENV_NAME_CHARS \
--- a/src/basic/log.c
+++ b/src/basic/log.c
@@ -34,6 +34,7 @@
@@ -36,6 +36,7 @@
#include "terminal-util.h"
#include "time-util.h"
#include "utf8.h"
@@ -128,8 +122,6 @@ index 17557e1844b2..6cec4d324aab 100644
#define SNDBUF_SIZE (8*1024*1024)
diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
index 188a8d44066a..1e16ec287aad 100644
--- a/src/basic/missing_stdlib.h
+++ b/src/basic/missing_stdlib.h
@@ -11,3 +11,15 @@
@@ -148,32 +140,46 @@ index 188a8d44066a..1e16ec287aad 100644
+ (char *)memcpy(__new, __old, __len); \
+ })
+#endif
diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
index fa682d4c438e..37902551490a 100644
--- a/src/basic/mkdir.c
+++ b/src/basic/mkdir.c
@@ -13,6 +13,7 @@
@@ -14,6 +14,7 @@
#include "stat-util.h"
#include "stdio-util.h"
#include "user-util.h"
+#include "missing_stdlib.h"
int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir) {
struct stat st;
diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
index e0094b0f370a..00da6518124b 100644
int mkdir_safe_internal(
const char *path,
--- a/src/basic/mountpoint-util.c
+++ b/src/basic/mountpoint-util.c
@@ -12,6 +12,7 @@
#include "missing_stat.h"
#include "missing_syscall.h"
#include "mkdir.h"
+#include "missing_stdlib.h"
#include "mountpoint-util.h"
#include "parse-util.h"
#include "path-util.h"
--- a/src/basic/parse-util.c
+++ b/src/basic/parse-util.c
@@ -18,6 +18,7 @@
#include "process-util.h"
@@ -19,6 +19,7 @@
#include "stat-util.h"
#include "string-util.h"
#include "strv.h"
+#include "missing_stdlib.h"
int parse_boolean(const char *v) {
if (!v)
diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c
index 1af58717c686..c1020f4611d4 100644
--- a/src/basic/path-lookup.c
+++ b/src/basic/path-lookup.c
@@ -15,6 +15,7 @@
#include "strv.h"
#include "tmpfile-util.h"
#include "user-util.h"
+#include "missing_stdlib.h"
int xdg_user_runtime_dir(char **ret, const char *suffix) {
const char *e;
--- a/src/basic/proc-cmdline.c
+++ b/src/basic/proc-cmdline.c
@@ -15,6 +15,7 @@
@@ -184,8 +190,6 @@ index 1af58717c686..c1020f4611d4 100644
int proc_cmdline(char **ret) {
const char *e;
diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
index 7aaf95bfced2..da7e836f143e 100644
--- a/src/basic/procfs-util.c
+++ b/src/basic/procfs-util.c
@@ -11,6 +11,7 @@
@@ -196,23 +200,19 @@ index 7aaf95bfced2..da7e836f143e 100644
int procfs_tasks_get_limit(uint64_t *ret) {
_cleanup_free_ char *value = NULL;
diff --git a/src/basic/selinux-util.c b/src/basic/selinux-util.c
index 1095cb426cce..806ef4bd97a9 100644
--- a/src/basic/selinux-util.c
+++ b/src/basic/selinux-util.c
@@ -26,6 +26,7 @@
@@ -27,6 +27,7 @@
#include "selinux-util.h"
#include "stdio-util.h"
#include "time-util.h"
+#include "missing_stdlib.h"
#if HAVE_SELINUX
DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free);
diff --git a/src/basic/time-util.c b/src/basic/time-util.c
index 105584e2e72f..eb0bed47dac3 100644
DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(context_t, context_free, NULL);
--- a/src/basic/time-util.c
+++ b/src/basic/time-util.c
@@ -26,6 +26,7 @@
@@ -27,6 +27,7 @@
#include "string-util.h"
#include "strv.h"
#include "time-util.h"
@@ -220,8 +220,6 @@ index 105584e2e72f..eb0bed47dac3 100644
static clockid_t map_clock_id(clockid_t c) {
diff --git a/src/boot/bless-boot.c b/src/boot/bless-boot.c
index b96e1f927fff..cba979baca3e 100644
--- a/src/boot/bless-boot.c
+++ b/src/boot/bless-boot.c
@@ -18,6 +18,7 @@
@@ -232,20 +230,16 @@ index b96e1f927fff..cba979baca3e 100644
static char **arg_path = NULL;
diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
index 27dc9e43c3e2..b1a83023600b 100644
--- a/src/core/dbus-cgroup.c
+++ b/src/core/dbus-cgroup.c
@@ -15,6 +15,7 @@
#include "fileio.h"
@@ -17,6 +17,7 @@
#include "limits-util.h"
#include "path-util.h"
#include "percent-util.h"
+#include "missing_stdlib.h"
BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve);
diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
index d8ba3e5d9241..729e13fda64c 100644
--- a/src/core/dbus-execute.c
+++ b/src/core/dbus-execute.c
@@ -41,6 +41,7 @@
@@ -256,11 +250,9 @@ index d8ba3e5d9241..729e13fda64c 100644
BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput);
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c
index 7862beaacb6d..3b1ea53a5f0d 100644
--- a/src/core/dbus-util.c
+++ b/src/core/dbus-util.c
@@ -7,6 +7,7 @@
@@ -9,6 +9,7 @@
#include "unit-printf.h"
#include "user-util.h"
#include "unit.h"
@@ -268,20 +260,16 @@ index 7862beaacb6d..3b1ea53a5f0d 100644
int bus_property_get_triggered_unit(
sd_bus *bus,
diff --git a/src/core/execute.c b/src/core/execute.c
index 89dbf6fbd2c1..9762dc57443c 100644
--- a/src/core/execute.c
+++ b/src/core/execute.c
@@ -88,6 +88,7 @@
#include "unit.h"
@@ -96,6 +96,7 @@
#include "unit-serialize.h"
#include "user-util.h"
#include "utmp-wtmp.h"
+#include "missing_stdlib.h"
#define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC)
#define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC)
diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
index 09ccd613e32c..f4e64fa283e9 100644
--- a/src/core/kmod-setup.c
+++ b/src/core/kmod-setup.c
@@ -11,6 +11,7 @@
@@ -292,8 +280,6 @@ index 09ccd613e32c..f4e64fa283e9 100644
#if HAVE_KMOD
#include "module-util.h"
diff --git a/src/core/service.c b/src/core/service.c
index 17f27a4abce3..e5dcc532d0ce 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -41,6 +41,7 @@
@@ -304,8 +290,6 @@ index 17f27a4abce3..e5dcc532d0ce 100644
static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
[SERVICE_DEAD] = UNIT_INACTIVE,
diff --git a/src/coredump/coredump-vacuum.c b/src/coredump/coredump-vacuum.c
index 35885dfb47c4..bb9f0660a6a0 100644
--- a/src/coredump/coredump-vacuum.c
+++ b/src/coredump/coredump-vacuum.c
@@ -16,6 +16,7 @@
@@ -316,11 +300,9 @@ index 35885dfb47c4..bb9f0660a6a0 100644
#define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL) /* 1 MiB */
#define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */
diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c
index 88e42d3a984b..0f08376e5399 100644
--- a/src/journal-remote/journal-remote-main.c
+++ b/src/journal-remote/journal-remote-main.c
@@ -22,6 +22,7 @@
@@ -24,6 +24,7 @@
#include "stat-util.h"
#include "string-table.h"
#include "strv.h"
@@ -328,11 +310,9 @@ index 88e42d3a984b..0f08376e5399 100644
#define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem"
#define CERT_FILE CERTIFICATE_ROOT "/certs/journal-remote.pem"
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
index e5feec83bce6..c3aec1e219d7 100644
--- a/src/journal/journalctl.c
+++ b/src/journal/journalctl.c
@@ -69,6 +69,7 @@
@@ -72,6 +72,7 @@
#include "unit-name.h"
#include "user-util.h"
#include "varlink.h"
@@ -340,23 +320,9 @@ index e5feec83bce6..c3aec1e219d7 100644
#define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
#define PROCESS_INOTIFY_INTERVAL 1024 /* Every 1,024 messages processed */
diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c
index 3fa98dfda237..e655d77e714a 100644
--- a/src/journal/sd-journal.c
+++ b/src/journal/sd-journal.c
@@ -40,6 +40,7 @@
#include "string-util.h"
#include "strv.h"
#include "syslog-util.h"
+#include "missing_stdlib.h"
#define JOURNAL_FILES_MAX 7168
diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
index 73127dfe0253..cc8635dea591 100644
--- a/src/libsystemd/sd-bus/bus-message.c
+++ b/src/libsystemd/sd-bus/bus-message.c
@@ -21,6 +21,7 @@
@@ -20,6 +20,7 @@
#include "strv.h"
#include "time-util.h"
#include "utf8.h"
@@ -364,11 +330,9 @@ index 73127dfe0253..cc8635dea591 100644
static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c
index 6d140348ec4c..9126b8801bc5 100644
--- a/src/libsystemd/sd-bus/bus-objects.c
+++ b/src/libsystemd/sd-bus/bus-objects.c
@@ -13,6 +13,7 @@
@@ -12,6 +12,7 @@
#include "set.h"
#include "string-util.h"
#include "strv.h"
@@ -376,8 +340,6 @@ index 6d140348ec4c..9126b8801bc5 100644
static int node_vtable_get_userdata(
sd_bus *bus,
diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c
index 18d30d010a20..be2ab703f8ed 100644
--- a/src/libsystemd/sd-bus/bus-socket.c
+++ b/src/libsystemd/sd-bus/bus-socket.c
@@ -28,6 +28,7 @@
@@ -388,35 +350,39 @@ index 18d30d010a20..be2ab703f8ed 100644
#define SNDBUF_SIZE (8*1024*1024)
diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
index 7ad03680f48d..b9d2181e4910 100644
--- a/src/libsystemd/sd-bus/sd-bus.c
+++ b/src/libsystemd/sd-bus/sd-bus.c
@@ -41,6 +41,7 @@
#include "process-util.h"
#include "string-util.h"
#include "strv.h"
#include "user-util.h"
+#include "missing_stdlib.h"
#define log_debug_bus_message(m) \
do { \
diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c b/src/libsystemd/sd-bus/test-bus-benchmark.c
index 8de0a859ee94..58044b6ba908 100644
--- a/src/libsystemd/sd-bus/test-bus-benchmark.c
+++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
@@ -14,6 +14,7 @@
#include "missing_resource.h"
#include "string-util.h"
#include "time-util.h"
#include "util.h"
+#include "missing_stdlib.h"
#define MAX_SIZE (2*1024*1024)
diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c
index 30669a9359e5..6544b3722099 100644
--- a/src/libsystemd/sd-journal/sd-journal.c
+++ b/src/libsystemd/sd-journal/sd-journal.c
@@ -40,6 +40,7 @@
#include "string-util.h"
#include "strv.h"
#include "syslog-util.h"
+#include "missing_stdlib.h"
#define JOURNAL_FILES_MAX 7168
--- a/src/locale/keymap-util.c
+++ b/src/locale/keymap-util.c
@@ -21,6 +21,7 @@
@@ -24,6 +24,7 @@
#include "string-util.h"
#include "strv.h"
#include "tmpfile-util.h"
@@ -424,8 +390,6 @@ index 30669a9359e5..6544b3722099 100644
static bool startswith_comma(const char *s, const char *prefix) {
s = startswith(s, prefix);
diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c
index 84bea21ab7be..49720c7f742e 100644
--- a/src/login/pam_systemd.c
+++ b/src/login/pam_systemd.c
@@ -31,6 +31,7 @@
@@ -436,8 +400,6 @@ index 84bea21ab7be..49720c7f742e 100644
#include "pam-util.h"
#include "parse-util.h"
#include "path-util.h"
diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c
index bed1e42697c4..e4847c2beea2 100644
--- a/src/network/generator/network-generator.c
+++ b/src/network/generator/network-generator.c
@@ -13,6 +13,7 @@
@@ -448,8 +410,6 @@ index bed1e42697c4..e4847c2beea2 100644
/*
# .network
diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c
index 5fb5b49bbcc3..785ccc2da307 100644
--- a/src/nspawn/nspawn-settings.c
+++ b/src/nspawn/nspawn-settings.c
@@ -16,6 +16,7 @@
@@ -460,23 +420,19 @@ index 5fb5b49bbcc3..785ccc2da307 100644
Settings *settings_new(void) {
Settings *s;
diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c
index 364356da5622..47d4ea44e40f 100644
--- a/src/nss-mymachines/nss-mymachines.c
+++ b/src/nss-mymachines/nss-mymachines.c
@@ -19,6 +19,7 @@
@@ -21,6 +21,7 @@
#include "nss-util.h"
#include "signal-util.h"
#include "string-util.h"
#include "user-util.h"
+#include "missing_stdlib.h"
NSS_GETHOSTBYNAME_PROTOTYPES(mymachines);
NSS_GETPW_PROTOTYPES(mymachines);
diff --git a/src/portable/portable.c b/src/portable/portable.c
index e18826ab2685..d9f4b81d8937 100644
static void setup_logging(void) {
/* We need a dummy function because log_parse_environment is a macro. */
--- a/src/portable/portable.c
+++ b/src/portable/portable.c
@@ -31,6 +31,7 @@
@@ -32,6 +32,7 @@
#include "strv.h"
#include "tmpfile-util.h"
#include "user-util.h"
@@ -484,20 +440,26 @@ index e18826ab2685..d9f4b81d8937 100644
static const char profile_dirs[] = CONF_PATHS_NULSTR("systemd/portable/profile");
diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c
index f20e8c44b8bc..9f6c4e8f49a7 100644
--- a/src/resolve/resolvectl.c
+++ b/src/resolve/resolvectl.c
@@ -33,6 +33,7 @@
#include "strv.h"
@@ -41,6 +41,7 @@
#include "terminal-util.h"
#include "utf8.h"
#include "verbs.h"
+#include "missing_stdlib.h"
static int arg_family = AF_UNSPEC;
static int arg_ifindex = 0;
diff --git a/src/shared/bus-unit-procs.c b/src/shared/bus-unit-procs.c
index b21fe393265f..af2640005c1d 100644
--- a/src/shared/bus-get-properties.c
+++ b/src/shared/bus-get-properties.c
@@ -4,6 +4,7 @@
#include "rlimit-util.h"
#include "stdio-util.h"
#include "string-util.h"
+#include "missing_stdlib.h"
int bus_property_get_bool(
sd_bus *bus,
--- a/src/shared/bus-unit-procs.c
+++ b/src/shared/bus-unit-procs.c
@@ -10,6 +10,7 @@
@@ -508,11 +470,9 @@ index b21fe393265f..af2640005c1d 100644
struct CGroupInfo {
char *cgroup_path;
diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c
index 28d85944a8a7..4743a84a417e 100644
--- a/src/shared/bus-unit-util.c
+++ b/src/shared/bus-unit-util.c
@@ -34,6 +34,7 @@
@@ -45,6 +45,7 @@
#include "unit-def.h"
#include "user-util.h"
#include "utf8.h"
@@ -520,23 +480,19 @@ index 28d85944a8a7..4743a84a417e 100644
int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
assert(message);
diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
index 8e6a6e2ce2de..0cbf4b1997df 100644
--- a/src/shared/bus-util.c
+++ b/src/shared/bus-util.c
@@ -30,6 +30,7 @@
@@ -21,6 +21,7 @@
#include "path-util.h"
#include "socket-util.h"
#include "stdio-util.h"
#include "strv.h"
#include "user-util.h"
+#include "missing_stdlib.h"
static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
sd_event *e = userdata;
diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c
index b812665315f6..8e68f7f8fc6c 100644
--- a/src/shared/dns-domain.c
+++ b/src/shared/dns-domain.c
@@ -23,6 +23,7 @@
@@ -17,6 +17,7 @@
#include "string-util.h"
#include "strv.h"
#include "utf8.h"
@@ -544,8 +500,6 @@ index b812665315f6..8e68f7f8fc6c 100644
int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
const char *n;
diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c
index 7c4fc7021dec..3fbaf5a63969 100644
--- a/src/shared/journal-importer.c
+++ b/src/shared/journal-importer.c
@@ -14,6 +14,7 @@
@@ -556,23 +510,19 @@ index 7c4fc7021dec..3fbaf5a63969 100644
enum {
IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
index 2bfd0b60c26b..6a1bb3a0760f 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
@@ -39,6 +39,7 @@
#include "time-util.h"
@@ -41,6 +41,7 @@
#include "utf8.h"
#include "util.h"
#include "web-util.h"
+#include "missing_stdlib.h"
/* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
#define PRINT_LINE_THRESHOLD 3
diff --git a/src/shared/pager.c b/src/shared/pager.c
index 1fe9db179176..67954b5cab93 100644
--- a/src/shared/pager.c
+++ b/src/shared/pager.c
@@ -23,6 +23,7 @@
@@ -26,6 +26,7 @@
#include "strv.h"
#include "terminal-util.h"
#include "util.h"
@@ -580,20 +530,6 @@ index 1fe9db179176..67954b5cab93 100644
static pid_t pager_pid = 0;
diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c
index 5b1620974536..0e7cd1c2af12 100644
--- a/src/shared/path-lookup.c
+++ b/src/shared/path-lookup.c
@@ -19,6 +19,7 @@
#include "tmpfile-util.h"
#include "user-util.h"
#include "util.h"
+#include "missing_stdlib.h"
int xdg_user_runtime_dir(char **ret, const char *suffix) {
const char *e;
diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c
index 7cb7d8a477e9..8e7d7f9e7ca6 100644
--- a/src/shared/uid-range.c
+++ b/src/shared/uid-range.c
@@ -9,6 +9,7 @@
@@ -604,8 +540,6 @@ index 7cb7d8a477e9..8e7d7f9e7ca6 100644
static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
assert(range);
diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c
index 2ee6fc2f0a6a..4a9934f9c14d 100644
--- a/src/socket-proxy/socket-proxyd.c
+++ b/src/socket-proxy/socket-proxyd.c
@@ -26,6 +26,7 @@
@@ -616,8 +550,6 @@ index 2ee6fc2f0a6a..4a9934f9c14d 100644
#define BUFFER_SIZE (256 * 1024)
diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
index 52217429b154..70708dedf318 100644
--- a/src/test/test-hexdecoct.c
+++ b/src/test/test-hexdecoct.c
@@ -6,6 +6,7 @@
@@ -628,23 +560,19 @@ index 52217429b154..70708dedf318 100644
static void test_hexchar(void) {
assert_se(hexchar(0xa) == 'a');
diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c
index ca38f5608791..9d8cf4d2807b 100644
--- a/src/udev/udev-builtin-path_id.c
+++ b/src/udev/udev-builtin-path_id.c
@@ -22,6 +22,7 @@
#include "strv.h"
#include "sysexits.h"
#include "udev-builtin.h"
#include "udev-util.h"
+#include "missing_stdlib.h"
_printf_(2,3)
static void path_prepend(char **path, const char *fmt, ...) {
diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
index eb51139e519c..977cc16e9d7c 100644
--- a/src/udev/udev-event.c
+++ b/src/udev/udev-event.c
@@ -34,6 +34,7 @@
@@ -33,6 +33,7 @@
#include "udev-util.h"
#include "udev-watch.h"
#include "user-util.h"
@@ -652,11 +580,9 @@ index eb51139e519c..977cc16e9d7c 100644
typedef struct Spawn {
sd_device *device;
diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
index b9b350d1ef7a..2c114cc77572 100644
--- a/src/udev/udev-rules.c
+++ b/src/udev/udev-rules.c
@@ -30,6 +30,7 @@
@@ -31,6 +31,7 @@
#include "udev-rules.h"
#include "user-util.h"
#include "virt.h"
@@ -664,3 +590,13 @@ index b9b350d1ef7a..2c114cc77572 100644
#define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
--- a/src/basic/percent-util.c
+++ b/src/basic/percent-util.c
@@ -3,6 +3,7 @@
#include "percent-util.h"
#include "string-util.h"
#include "parse-util.h"
+#include "missing_stdlib.h"
static int parse_parts_value_whole(const char *p, const char *symbol) {
const char *pc, *n;

View File

@@ -0,0 +1,326 @@
From 2069f0b0d5ab8f869aeba635a347e0b11d362b30 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 26 Oct 2017 22:10:42 -0700
Subject: [PATCH] Include netinet/if_ether.h
Fixes
/path/to/systemd/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr'
struct ethhdr {
^~~~~~
and related arphdr, arpreq, and arpreq_old errors
/path/to/systemd/recipe-sysroot/usr/include/net/if_arp.h:22:8: error: redefinition of 'struct arphdr'
struct arphdr {
^~~~~~
The latter requires removing some includes of net/if_arp.h to avoid
conflicting with netinet/if_ether.h.
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
[rebased for systemd 247]
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
---
src/libsystemd-network/sd-dhcp6-client.c | 1 -
src/libsystemd/sd-netlink/netlink-types.c | 1 +
src/machine/machine-dbus.c | 1 +
src/network/netdev/bond.c | 1 +
src/network/netdev/bridge.c | 1 +
src/network/netdev/macsec.c | 1 +
src/network/netdev/netdev-gperf.gperf | 1 +
src/network/netdev/netdev.c | 1 +
src/network/networkd-brvlan.c | 1 +
src/network/networkd-dhcp-common.c | 4 +++-
src/network/networkd-dhcp-server.c | 4 ++--
src/network/networkd-dhcp4.c | 2 +-
src/network/networkd-dhcp6.c | 2 +-
src/network/networkd-link.c | 2 +-
src/network/networkd-network.c | 1 +
src/network/networkd-route.c | 5 ++++-
src/network/test-network-tables.c | 1 +
src/shared/ethtool-util.c | 1 +
src/shared/ethtool-util.h | 1 +
src/udev/net/link-config.c | 1 +
src/udev/udev-builtin-net_setup_link.c | 1 +
21 files changed, 26 insertions(+), 8 deletions(-)
diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
index 410bfda10e..e70ed8be92 100644
--- a/src/libsystemd-network/sd-dhcp6-client.c
+++ b/src/libsystemd-network/sd-dhcp6-client.c
@@ -5,7 +5,6 @@
#include <errno.h>
#include <sys/ioctl.h>
-#include <linux/if_arp.h>
#include <linux/if_infiniband.h>
#include "sd-dhcp6-client.h"
diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c
index ed7b9a8cd1..112c0b09e4 100644
--- a/src/libsystemd/sd-netlink/netlink-types.c
+++ b/src/libsystemd/sd-netlink/netlink-types.c
@@ -3,6 +3,7 @@
#include <netinet/in.h>
#include <stdint.h>
#include <sys/socket.h>
+#include <netinet/if_ether.h>
#include <linux/can/vxcan.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
index e7c4ed3c7c..3a1e4f9072 100644
--- a/src/machine/machine-dbus.c
+++ b/src/machine/machine-dbus.c
@@ -3,6 +3,7 @@
#include <errno.h>
#include <sys/mount.h>
#include <sys/wait.h>
+#include <netinet/if_ether.h>
/* When we include libgen.h because we need dirname() we immediately
* undefine basename() since libgen.h defines it as a macro to the POSIX
diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c
index cf7ca88d6f..34ab468191 100644
--- a/src/network/netdev/bond.c
+++ b/src/network/netdev/bond.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include "alloc-util.h"
#include "bond.h"
#include "bond-util.h"
diff --git a/src/network/netdev/bridge.c b/src/network/netdev/bridge.c
index 38432f1578..79ccfe578e 100644
--- a/src/network/netdev/bridge.c
+++ b/src/network/netdev/bridge.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include "bridge.h"
diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c
index 77c5f8c4e7..04be1b4ab2 100644
--- a/src/network/netdev/macsec.c
+++ b/src/network/netdev/macsec.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <linux/if_ether.h>
#include <linux/if_macsec.h>
diff --git a/src/network/netdev/netdev-gperf.gperf b/src/network/netdev/netdev-gperf.gperf
index 8abe044890..3c54c58928 100644
--- a/src/network/netdev/netdev-gperf.gperf
+++ b/src/network/netdev/netdev-gperf.gperf
@@ -3,6 +3,7 @@
#if __GNUC__ >= 7
_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"")
#endif
+#include <netinet/if_ether.h>
#include <stddef.h>
#include "bareudp.h"
#include "batadv.h"
diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c
index b31f0fa81a..c80e1ff537 100644
--- a/src/network/netdev/netdev.c
+++ b/src/network/netdev/netdev.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include <netinet/in.h>
#include <unistd.h>
diff --git a/src/network/networkd-brvlan.c b/src/network/networkd-brvlan.c
index 2847b336c9..4d6af8c642 100644
--- a/src/network/networkd-brvlan.c
+++ b/src/network/networkd-brvlan.c
@@ -4,6 +4,7 @@
***/
#include <netinet/in.h>
+#include <netinet/if_ether.h>
#include <linux/if_bridge.h>
#include <stdbool.h>
diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c
index 00d055cf8d..65821c1d31 100644
--- a/src/network/networkd-dhcp-common.c
+++ b/src/network/networkd-dhcp-common.c
@@ -1,7 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
-#include <linux/if_arp.h>
+#include <net/if_arp.h>
+#include <net/if.h>
#include "bus-error.h"
#include "dhcp-internal.h"
@@ -11,6 +12,7 @@
#include "networkd-dhcp-common.h"
#include "networkd-link.h"
#include "networkd-manager.h"
+#include <netinet/if_ether.h>
#include "networkd-network.h"
#include "parse-util.h"
#include "socket-util.h"
diff --git a/src/network/networkd-dhcp-server.c b/src/network/networkd-dhcp-server.c
index 5cdf432c27..93cffb9863 100644
--- a/src/network/networkd-dhcp-server.c
+++ b/src/network/networkd-dhcp-server.c
@@ -1,8 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
-#include <linux/if_arp.h>
-#include <linux/if.h>
+#include <net/if_arp.h>
+#include <net/if.h>
#include "sd-dhcp-server.h"
diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c
index 23dc3a45db..7ae6c2467a 100644
--- a/src/network/networkd-dhcp4.c
+++ b/src/network/networkd-dhcp4.c
@@ -1,9 +1,9 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
#include "escape.h"
#include "alloc-util.h"
diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c
index aa077d6219..4f6ce22059 100644
--- a/src/network/networkd-dhcp6.c
+++ b/src/network/networkd-dhcp6.c
@@ -3,9 +3,9 @@
Copyright © 2014 Intel Corporation. All rights reserved.
***/
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
#include "sd-dhcp6-client.h"
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index 8219d95b0d..c92230453b 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -1,8 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
#include <linux/if_link.h>
#include <unistd.h>
diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
index e5ffd35b6f..871ebb32c6 100644
--- a/src/network/networkd-network.c
+++ b/src/network/networkd-network.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include <netinet/in.h>
#include <linux/netdevice.h>
diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c
index a74541a6c9..a10549b336 100644
--- a/src/network/networkd-route.c
+++ b/src/network/networkd-route.c
@@ -1,7 +1,10 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/icmpv6.h>
-#include <linux/ipv6_route.h>
+/* linux/ipv6_route.h conflicts with netinet/in.h so define manually */
+#ifndef IP6_RT_PRIO_USER
+#define IP6_RT_PRIO_USER 1024
+#endif
#include "alloc-util.h"
#include "netlink-util.h"
diff --git a/src/network/test-network-tables.c b/src/network/test-network-tables.c
index ce34449554..0b5dc01182 100644
--- a/src/network/test-network-tables.c
+++ b/src/network/test-network-tables.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include "bond.h"
#include "dhcp6-internal.h"
#include "dhcp6-protocol.h"
diff --git a/src/shared/ethtool-util.c b/src/shared/ethtool-util.c
index 654d36a83a..f4ed42d543 100644
--- a/src/shared/ethtool-util.c
+++ b/src/shared/ethtool-util.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include <sys/ioctl.h>
#include <linux/ethtool.h>
diff --git a/src/shared/ethtool-util.h b/src/shared/ethtool-util.h
index 11e2906681..a171df0737 100644
--- a/src/shared/ethtool-util.h
+++ b/src/shared/ethtool-util.h
@@ -3,6 +3,7 @@
#include <macro.h>
#include <net/ethernet.h>
+#include <netinet/if_ether.h>
#include <linux/ethtool.h>
#include "conf-parser.h"
diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
index 31e5d0cd67..f25f821364 100644
--- a/src/udev/net/link-config.c
+++ b/src/udev/net/link-config.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <linux/netdevice.h>
#include <netinet/ether.h>
#include <unistd.h>
diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c
index 87e1fb133e..13876029d0 100644
--- a/src/udev/udev-builtin-net_setup_link.c
+++ b/src/udev/udev-builtin-net_setup_link.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include "alloc-util.h"
#include "device-util.h"
#include "errno-util.h"

View File

@@ -1,4 +1,4 @@
From 77f98727f1d19a8fb327b55c92f1a9ee7b859e9f Mon Sep 17 00:00:00 2001
From bca73ff2fbff2dc311040a87a4f536f89af07ad6 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 14:56:21 +0800
Subject: [PATCH] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not defined
@@ -24,7 +24,7 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
3 files changed, 38 insertions(+)
diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c
index e3aa6c2e152b..38070b79c83a 100644
index bc0278e57f..c973f82e54 100644
--- a/src/basic/glob-util.c
+++ b/src/basic/glob-util.c
@@ -12,6 +12,12 @@
@@ -64,7 +64,7 @@ index e3aa6c2e152b..38070b79c83a 100644
return -ENOENT;
if (k == GLOB_NOSPACE)
diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c
index 667d15335fbf..76a84443aacf 100644
index df6444c433..79a692046e 100644
--- a/src/test/test-glob-util.c
+++ b/src/test/test-glob-util.c
@@ -12,6 +12,12 @@
@@ -115,10 +115,10 @@ index 667d15335fbf..76a84443aacf 100644
(void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL);
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
index 193ed0bc781b..2f94fd2efd8f 100644
index 6b73d1e6d5..26b3b74275 100644
--- a/src/tmpfiles/tmpfiles.c
+++ b/src/tmpfiles/tmpfiles.c
@@ -58,6 +58,12 @@
@@ -66,6 +66,12 @@
#include "umask-util.h"
#include "user-util.h"
@@ -131,7 +131,7 @@ index 193ed0bc781b..2f94fd2efd8f 100644
/* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
* them in the file system. This is intended to be used to create
* properly owned directories beneath /tmp, /var/tmp, /run, which are
@@ -1850,7 +1856,9 @@ finish:
@@ -1947,7 +1953,9 @@ finish:
static int glob_item(Item *i, action_t action) {
_cleanup_globfree_ glob_t g = {
@@ -141,7 +141,7 @@ index 193ed0bc781b..2f94fd2efd8f 100644
};
int r = 0, k;
char **fn;
@@ -1870,7 +1878,9 @@ static int glob_item(Item *i, action_t action) {
@@ -1967,7 +1975,9 @@ static int glob_item(Item *i, action_t action) {
static int glob_item_recursively(Item *i, fdaction_t action) {
_cleanup_globfree_ glob_t g = {

View File

@@ -0,0 +1,45 @@
From e0d1912f0246c97e5e7b4177691363d2d077e11d Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:00:06 +0800
Subject: [PATCH] add missing FTW_ macros for musl
This is to avoid build failures like below for musl.
locale-util.c:296:24: error: 'FTW_STOP' undeclared
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
src/basic/missing_type.h | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
index aeaf6ad5ec..3df1084ef2 100644
--- a/src/basic/missing_type.h
+++ b/src/basic/missing_type.h
@@ -19,3 +19,23 @@ typedef int (*comparison_fn_t)(const void *, const void *);
#define __COMPAR_FN_T
typedef int (*__compar_fn_t)(const void *, const void *);
#endif
+
+#ifndef FTW_ACTIONRETVAL
+#define FTW_ACTIONRETVAL 16
+#endif
+
+#ifndef FTW_CONTINUE
+#define FTW_CONTINUE 0
+#endif
+
+#ifndef FTW_STOP
+#define FTW_STOP 1
+#endif
+
+#ifndef FTW_SKIP_SUBTREE
+#define FTW_SKIP_SUBTREE 2
+#endif
+
+#ifndef FTW_SKIP_SIBLINGS
+#define FTW_SKIP_SIBLINGS 3
+#endif

View File

@@ -1,4 +1,4 @@
From eed7427db98cc01db7e9b3479655d68b044bc85b Mon Sep 17 00:00:00 2001
From bb41fe773881a8f1d9615d388320b9c6fc47bfe5 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:03:47 +0800
Subject: [PATCH] fix missing of __register_atfork for non-glibc builds
@@ -12,7 +12,7 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
1 file changed, 7 insertions(+)
diff --git a/src/basic/process-util.c b/src/basic/process-util.c
index 5de366f830e8..644f53aee005 100644
index 7d4301eadb..caa9dfe3a3 100644
--- a/src/basic/process-util.c
+++ b/src/basic/process-util.c
@@ -18,6 +18,9 @@
@@ -25,7 +25,7 @@ index 5de366f830e8..644f53aee005 100644
#include "alloc-util.h"
#include "architecture.h"
@@ -1116,11 +1119,15 @@ void reset_cached_pid(void) {
@@ -1121,11 +1124,15 @@ void reset_cached_pid(void) {
cached_pid = CACHED_PID_UNSET;
}

View File

@@ -1,4 +1,4 @@
From 4aa91347ae975051dbe4dd2f98a1f4f459f2604f Mon Sep 17 00:00:00 2001
From dc40487e0ac26e3ca317429b9c3e8f01772de60a Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:12:41 +0800
Subject: [PATCH] Use uintmax_t for handling rlim_t
@@ -28,7 +28,7 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
3 files changed, 8 insertions(+), 14 deletions(-)
diff --git a/src/basic/format-util.h b/src/basic/format-util.h
index c47fa76ea8ff..14a78d9f5fd0 100644
index b7e18768e3..3195ab205d 100644
--- a/src/basic/format-util.h
+++ b/src/basic/format-util.h
@@ -32,13 +32,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32_t));
@@ -47,10 +47,19 @@ index c47fa76ea8ff..14a78d9f5fd0 100644
#if SIZEOF_DEV_T == 8
# define DEV_FMT "%" PRIu64
diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c
index 2dc13eabc30d..0633cc67f417 100644
index 23d108d5df..b037734ee3 100644
--- a/src/basic/rlimit-util.c
+++ b/src/basic/rlimit-util.c
@@ -306,13 +306,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
@@ -43,7 +43,7 @@ int setrlimit_closest(int resource, const struct rlimit *rlim) {
fixed.rlim_max == highest.rlim_max)
return 0;
- log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", rlim->rlim_max, rlimit_to_string(resource), fixed.rlim_max);
+ log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", (uintmax_t)rlim->rlim_max, rlimit_to_string(resource), (uintmax_t)fixed.rlim_max);
if (setrlimit(resource, &fixed) < 0)
return -errno;
@@ -308,13 +308,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
s = strdup("infinity");
else if (rl->rlim_cur >= RLIM_INFINITY)
@@ -68,7 +77,7 @@ index 2dc13eabc30d..0633cc67f417 100644
if (!s)
return -ENOMEM;
@@ -403,7 +403,7 @@ int rlimit_nofile_safe(void) {
@@ -405,7 +405,7 @@ int rlimit_nofile_safe(void) {
rl.rlim_cur = FD_SETSIZE;
if (setrlimit(RLIMIT_NOFILE, &rl) < 0)
@@ -78,11 +87,11 @@ index 2dc13eabc30d..0633cc67f417 100644
return 1;
}
diff --git a/src/core/execute.c b/src/core/execute.c
index 9762dc57443c..4a3421bb3ee6 100644
index f82fc294c0..4696d055a8 100644
--- a/src/core/execute.c
+++ b/src/core/execute.c
@@ -4567,9 +4567,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
for (i = 0; i < RLIM_NLIMITS; i++)
@@ -5370,9 +5370,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
for (unsigned i = 0; i < RLIM_NLIMITS; i++)
if (c->rlimit[i]) {
fprintf(f, "%sLimit%s: " RLIM_FMT "\n",
- prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);

View File

@@ -1,4 +1,4 @@
From 62fac5e3ff0fccd329cdc49605258b6d0e573a3e Mon Sep 17 00:00:00 2001
From f8be7b283309e4332eedc088774daac637afef7b Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Wed, 28 Feb 2018 21:25:22 -0800
Subject: [PATCH] test-sizeof.c: Disable tests for missing typedefs in musl
@@ -13,10 +13,10 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
1 file changed, 4 insertions(+)
diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
index 1020e0cb3153..c65062d2562c 100644
index 3c9dc180fa..e1a59d408c 100644
--- a/src/test/test-sizeof.c
+++ b/src/test/test-sizeof.c
@@ -44,8 +44,10 @@ int main(void) {
@@ -55,8 +55,10 @@ int main(void) {
info(unsigned);
info(long unsigned);
info(long long unsigned);
@@ -27,7 +27,7 @@ index 1020e0cb3153..c65062d2562c 100644
info(float);
info(double);
@@ -63,7 +65,9 @@ int main(void) {
@@ -74,7 +76,9 @@ int main(void) {
info(ssize_t);
info(time_t);
info(usec_t);

View File

@@ -1,4 +1,4 @@
From e6f871078d8d6f076c84f908fa57af15417ab87d Mon Sep 17 00:00:00 2001
From 06915b70735caa66987af758ebdc4207757ae758 Mon Sep 17 00:00:00 2001
From: Andre McCurdy <armccurdy@gmail.com>
Date: Tue, 10 Oct 2017 14:33:30 -0700
Subject: [PATCH] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
@@ -27,19 +27,20 @@ Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
---
src/basic/fs-util.h | 22 +++++++++++++++++++++-
src/basic/fs-util.h | 23 +++++++++++++++++++++--
src/shared/base-filesystem.c | 6 +++---
2 files changed, 24 insertions(+), 4 deletions(-)
2 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h
index 78d68be9fd85..c5dc84d41868 100644
index 027037f7a7..16eb379caf 100644
--- a/src/basic/fs-util.h
+++ b/src/basic/fs-util.h
@@ -40,7 +40,27 @@ int fchmod_opath(int fd, mode_t m);
@@ -44,8 +44,27 @@ int futimens_opath(int fd, const struct timespec ts[2]);
int fd_warn_permissions(const char *path, int fd);
int stat_warn_permissions(const char *path, const struct stat *st);
-#define laccess(path, mode) faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW)
-#define laccess(path, mode) \
- (faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW) < 0 ? -errno : 0)
+/*
+ Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right thing to
+ do and it's not portable (not supported by musl). See:
@@ -65,7 +66,7 @@ index 78d68be9fd85..c5dc84d41868 100644
int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode);
int touch(const char *path);
diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c
index 657407da2d37..fbd5782d84fc 100644
index 1d05409086..1ed06c31ab 100644
--- a/src/shared/base-filesystem.c
+++ b/src/shared/base-filesystem.c
@@ -54,7 +54,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {

View File

@@ -1,4 +1,4 @@
From ec335ef3bb903a7eaf054103cc51411e71e6448c Mon Sep 17 00:00:00 2001
From 0c44af262cfa07c57db4b32de1f7610af47797f4 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 27 May 2018 08:36:44 -0700
Subject: [PATCH] Define glibc compatible basename() for non-glibc systems
@@ -15,7 +15,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 5 insertions(+)
diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
index 760ccb445cd0..0df20f3864b3 100644
index 3a1e4f9072..ab87b9882c 100644
--- a/src/machine/machine-dbus.c
+++ b/src/machine/machine-dbus.c
@@ -11,6 +11,11 @@
@@ -29,4 +29,4 @@ index 760ccb445cd0..0df20f3864b3 100644
+
#include "alloc-util.h"
#include "bus-common-errors.h"
#include "bus-internal.h"
#include "bus-get-properties.h"

View File

@@ -1,4 +1,4 @@
From bb28a9c870bb47dcdb1ccebaa8e3a5a86730a244 Mon Sep 17 00:00:00 2001
From 0f4b60e34a806055c678eb97a7ec7e21291bcf48 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Wed, 4 Jul 2018 15:00:44 +0800
Subject: [PATCH] Do not disable buffering when writing to oom_score_adj
@@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/basic/process-util.c b/src/basic/process-util.c
index 644f53aee005..acaf13591396 100644
index caa9dfe3a3..6101f43db5 100644
--- a/src/basic/process-util.c
+++ b/src/basic/process-util.c
@@ -1500,7 +1500,7 @@ int set_oom_score_adjust(int value) {
@@ -1523,7 +1523,7 @@ int set_oom_score_adjust(int value) {
sprintf(t, "%i", value);
return write_string_file("/proc/self/oom_score_adj", t,

View File

@@ -1,4 +1,4 @@
From 4938705454cf46cfe8deac8ce457d5d2432cbead Mon Sep 17 00:00:00 2001
From c30ab62d18ce88187f5eb6c236e0977c9337f68d Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Tue, 10 Jul 2018 15:40:17 +0800
Subject: [PATCH] distinguish XSI-compliant strerror_r from GNU-specifi
@@ -20,32 +20,15 @@ Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
src/journal/journal-send.c | 5 +++++
src/libsystemd/sd-bus/bus-error.c | 5 +++++
src/libsystemd/sd-bus/bus-error.c | 5 +++++
src/libsystemd/sd-journal/journal-send.c | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
index 43ed756bda53..227ea64dbb48 100644
--- a/src/journal/journal-send.c
+++ b/src/journal/journal-send.c
@@ -336,7 +336,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
char* j;
errno = 0;
+#ifndef __GLIBC__
+ strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
+ j = buffer + 8 + k;
+#else
j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
+#endif
if (errno == 0) {
char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];
diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
index f760f0fdd21c..28a5159c4480 100644
index 8da2024a50..9605a9b869 100644
--- a/src/libsystemd/sd-bus/bus-error.c
+++ b/src/libsystemd/sd-bus/bus-error.c
@@ -379,7 +379,12 @@ static void bus_error_strerror(sd_bus_error *e, int error) {
@@ -392,7 +392,12 @@ static void bus_error_strerror(sd_bus_error *e, int error) {
return;
errno = 0;
@@ -58,3 +41,20 @@ index f760f0fdd21c..28a5159c4480 100644
if (errno == ERANGE || strlen(x) >= k - 1) {
free(m);
k *= 2;
diff --git a/src/libsystemd/sd-journal/journal-send.c b/src/libsystemd/sd-journal/journal-send.c
index e8e6ad555b..8ca5271d02 100644
--- a/src/libsystemd/sd-journal/journal-send.c
+++ b/src/libsystemd/sd-journal/journal-send.c
@@ -348,7 +348,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
char* j;
errno = 0;
+#ifndef __GLIBC__
+ strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
+ j = buffer + 8 + k;
+#else
j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
+#endif
if (errno == 0) {
char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];

View File

@@ -1,4 +1,4 @@
From 1c4c73a7cc0fb59eb68ab70699f7f51af5c163b2 Mon Sep 17 00:00:00 2001
From fa86e5578256dddb296fd30128929ea7c4b792a4 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:18:00 +0800
Subject: [PATCH] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP
@@ -17,10 +17,10 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
index 28a5159c4480..962a4de10c56 100644
index 9605a9b869..38b6cf90c3 100644
--- a/src/libsystemd/sd-bus/bus-error.c
+++ b/src/libsystemd/sd-bus/bus-error.c
@@ -54,8 +54,8 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map bus_standard_errors[] = {
@@ -55,8 +55,8 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map bus_standard_errors[] = {
};
/* GCC maps this magically to the beginning and end of the BUS_ERROR_MAP section */

View File

@@ -1,4 +1,4 @@
From 8303d49cabaf3ab8890ba1d266972c721dfe6ee8 Mon Sep 17 00:00:00 2001
From 11e730694706fa354a0e43c588ef66677a777d9a Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:27:54 +0800
Subject: [PATCH] missing_type.h: add __compar_d_fn_t definition
@@ -15,7 +15,7 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
1 file changed, 1 insertion(+)
diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
index 23602ebbd533..917d314a81bf 100644
index 3df1084ef2..697aa7f58a 100644
--- a/src/basic/missing_type.h
+++ b/src/basic/missing_type.h
@@ -13,6 +13,7 @@

View File

@@ -1,4 +1,4 @@
From 6364ff5534678c158a7fb8d4e50d0a6ce72c1ad8 Mon Sep 17 00:00:00 2001
From 45bae28d3da6607d33d54f4b30a500f5249aadde Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:44:54 +0800
Subject: [PATCH] avoid redefinition of prctl_mm_map structure
@@ -15,11 +15,11 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
1 file changed, 2 insertions(+)
diff --git a/src/basic/missing_prctl.h b/src/basic/missing_prctl.h
index f80cd17f346b..47e489354053 100644
index ab851306ba..5547cad875 100644
--- a/src/basic/missing_prctl.h
+++ b/src/basic/missing_prctl.h
@@ -1,7 +1,9 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
+#ifdef __GLIBC__

View File

@@ -0,0 +1,24 @@
From 6e593ff2afbe4bfe15eee2ec34e51490a38462f5 Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Fri, 7 Aug 2020 15:19:27 +0000
Subject: [PATCH] Handle missing LOCK_EX
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
src/partition/makefs.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/partition/makefs.c b/src/partition/makefs.c
index 7c94fbfedb..42f966722d 100644
--- a/src/partition/makefs.c
+++ b/src/partition/makefs.c
@@ -6,6 +6,7 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
+#include <sys/file.h>
#include "alloc-util.h"
#include "blockdev-util.h"

View File

@@ -0,0 +1,38 @@
From ac579b296aa29c2f1dad9425c6d795e154ec8f7c Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Fri, 7 Aug 2020 15:20:17 +0000
Subject: [PATCH] Fix incompatible pointer type struct sockaddr_un *
| ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c: In function 'cant_be_in_netns':
| ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:4893:25: error: passing argument 2 of 'connect' from incompatible pointer type [-Werror=incompatible-pointer-types]
| 4893 | if (connect(fd, &sa.un, SOCKADDR_UN_LEN(sa.un)) < 0) {
| | ^~~~~~
| | |
| | struct sockaddr_un *
| In file included from ../../../../../../workspace/sources/systemd/src/systemd/sd-daemon.h:22,
| from ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:21:
| /home/ubuntu/poky/build/tmp/work/core2-64-poky-linux-musl/systemd/1_246-r0/recipe-sysroot/usr/include/sys/socket.h:384:19: note: expected 'const struct sockaddr *' but argument is of type 'struct sockaddr_un *'
| 384 | int connect (int, const struct sockaddr *, socklen_t);
| | ^~~~~~~~~~~~~~~~~~~~~~~
| cc1: some warnings being treated as errors
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
src/nspawn/nspawn.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index a4ac8ed2bb..0c41a48d4b 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -5125,7 +5125,7 @@ static int cant_be_in_netns(void) {
if (fd < 0)
return log_error_errno(errno, "Failed to allocate udev control socket: %m");
- if (connect(fd, &sa.un, SOCKADDR_UN_LEN(sa.un)) < 0) {
+ if (connect(fd, (struct sockaddr *)&sa.un, SOCKADDR_UN_LEN(sa.un)) < 0) {
if (errno == ENOENT || ERRNO_IS_DISCONNECT(errno))
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),

View File

@@ -1,4 +1,4 @@
From a05cc5fb3dc0e51682c40196285cdda34ec90783 Mon Sep 17 00:00:00 2001
From 6bc78df50adb48d24a2abfdf65b44b932cc5a571 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 16:53:06 +0800
Subject: [PATCH] test-json.c: define M_PIl
@@ -15,10 +15,10 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
1 file changed, 4 insertions(+)
diff --git a/src/test/test-json.c b/src/test/test-json.c
index a6613043b924..ca823ea79f05 100644
index 1d4b11945e..572c8cf9d0 100644
--- a/src/test/test-json.c
+++ b/src/test/test-json.c
@@ -12,6 +12,10 @@
@@ -13,6 +13,10 @@
#include "tests.h"
#include "util.h"

View File

@@ -1,4 +1,4 @@
From f92fd7e77ed5aab2dda01a20e6891c37f09415d3 Mon Sep 17 00:00:00 2001
From 7cb6579572b50ef44bc0a321a4c73cce55b0c2f2 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Fri, 1 Mar 2019 15:22:15 +0800
Subject: [PATCH] do not disable buffer in writing files
@@ -23,6 +23,7 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
src/basic/cgroup-util.c | 10 +++++-----
src/basic/procfs-util.c | 4 ++--
src/basic/smack-util.c | 2 +-
src/basic/sysctl-util.c | 2 +-
src/basic/util.c | 2 +-
src/binfmt/binfmt.c | 6 +++---
src/core/main.c | 4 ++--
@@ -33,18 +34,15 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
src/nspawn/nspawn-cgroup.c | 2 +-
src/nspawn/nspawn.c | 6 +++---
src/shared/cgroup-setup.c | 4 ++--
src/shared/sysctl-util.c | 2 +-
src/sleep/sleep.c | 8 ++++----
src/udev/udevadm-trigger.c | 2 +-
src/udev/udevd.c | 2 +-
src/vconsole/vconsole-setup.c | 2 +-
18 files changed, 35 insertions(+), 35 deletions(-)
16 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
index a5141f4cbedd..04c06e7a55cb 100644
index 50c1ae1b2b..5b40e92163 100644
--- a/src/basic/cgroup-util.c
+++ b/src/basic/cgroup-util.c
@@ -739,7 +739,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
@@ -765,7 +765,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
sc = strstrip(contents);
if (isempty(sc)) {
@@ -53,7 +51,7 @@ index a5141f4cbedd..04c06e7a55cb 100644
if (r < 0)
return r;
} else if (!path_equal(sc, agent))
@@ -757,7 +757,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
@@ -783,7 +783,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
sc = strstrip(contents);
if (streq(sc, "0")) {
@@ -62,7 +60,7 @@ index a5141f4cbedd..04c06e7a55cb 100644
if (r < 0)
return r;
@@ -784,7 +784,7 @@ int cg_uninstall_release_agent(const char *controller) {
@@ -810,7 +810,7 @@ int cg_uninstall_release_agent(const char *controller) {
if (r < 0)
return r;
@@ -71,7 +69,7 @@ index a5141f4cbedd..04c06e7a55cb 100644
if (r < 0)
return r;
@@ -794,7 +794,7 @@ int cg_uninstall_release_agent(const char *controller) {
@@ -820,7 +820,7 @@ int cg_uninstall_release_agent(const char *controller) {
if (r < 0)
return r;
@@ -90,7 +88,7 @@ index a5141f4cbedd..04c06e7a55cb 100644
int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
index da7e836f143e..2138f20bcc03 100644
index 8f9eee8d36..480f8cc0b4 100644
--- a/src/basic/procfs-util.c
+++ b/src/basic/procfs-util.c
@@ -86,13 +86,13 @@ int procfs_tasks_set_limit(uint64_t limit) {
@@ -110,7 +108,7 @@ index da7e836f143e..2138f20bcc03 100644
uint64_t threads_max;
diff --git a/src/basic/smack-util.c b/src/basic/smack-util.c
index da9a2139d31a..5e91f5b8f5d9 100644
index 3362ee3924..80c0f2a52e 100644
--- a/src/basic/smack-util.c
+++ b/src/basic/smack-util.c
@@ -114,7 +114,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) {
@@ -122,11 +120,24 @@ index da9a2139d31a..5e91f5b8f5d9 100644
if (r < 0)
return r;
diff --git a/src/basic/sysctl-util.c b/src/basic/sysctl-util.c
index c96b5cd77f..d2476d9665 100644
--- a/src/basic/sysctl-util.c
+++ b/src/basic/sysctl-util.c
@@ -93,7 +93,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c
log_debug("Setting '%s' to '%s'", p, value);
- return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER);
+ return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | 0);
}
int sysctl_read(const char *property, char **ret) {
diff --git a/src/basic/util.c b/src/basic/util.c
index 2b3b3918a32f..aff8d0fcd473 100644
index 955b18bd2a..6d89c90176 100644
--- a/src/basic/util.c
+++ b/src/basic/util.c
@@ -267,7 +267,7 @@ void disable_coredumps(void) {
@@ -234,7 +234,7 @@ void disable_coredumps(void) {
if (detect_container() > 0)
return;
@@ -136,10 +147,10 @@ index 2b3b3918a32f..aff8d0fcd473 100644
log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m");
}
diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c
index 7ff844c78c3a..5c5721d7c2f7 100644
index f6b72e0bae..e9fd4d06be 100644
--- a/src/binfmt/binfmt.c
+++ b/src/binfmt/binfmt.c
@@ -47,7 +47,7 @@ static int delete_rule(const char *rule) {
@@ -48,7 +48,7 @@ static int delete_rule(const char *rule) {
if (!fn)
return log_oom();
@@ -148,7 +159,7 @@ index 7ff844c78c3a..5c5721d7c2f7 100644
}
static int apply_rule(const char *rule) {
@@ -55,7 +55,7 @@ static int apply_rule(const char *rule) {
@@ -56,7 +56,7 @@ static int apply_rule(const char *rule) {
(void) delete_rule(rule);
@@ -157,7 +168,7 @@ index 7ff844c78c3a..5c5721d7c2f7 100644
if (r < 0)
return log_error_errno(r, "Failed to add binary format: %m");
@@ -212,7 +212,7 @@ static int run(int argc, char *argv[]) {
@@ -222,7 +222,7 @@ static int run(int argc, char *argv[]) {
}
/* Flush out all rules */
@@ -167,10 +178,10 @@ index 7ff844c78c3a..5c5721d7c2f7 100644
STRV_FOREACH(f, files) {
k = apply_file(*f, true);
diff --git a/src/core/main.c b/src/core/main.c
index 3c6b66e89c8e..c39ebe56a5b3 100644
index 3ee8d0a869..ec36e3e80f 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -1312,7 +1312,7 @@ static int bump_unix_max_dgram_qlen(void) {
@@ -1401,7 +1401,7 @@ static int bump_unix_max_dgram_qlen(void) {
if (v >= DEFAULT_UNIX_MAX_DGRAM_QLEN)
return 0;
@@ -179,7 +190,7 @@ index 3c6b66e89c8e..c39ebe56a5b3 100644
if (r < 0)
return log_full_errno(IN_SET(r, -EROFS, -EPERM, -EACCES) ? LOG_DEBUG : LOG_WARNING, r,
"Failed to bump AF_UNIX datagram queue length, ignoring: %m");
@@ -1536,7 +1536,7 @@ static void initialize_core_pattern(bool skip_setup) {
@@ -1678,7 +1678,7 @@ static void initialize_core_pattern(bool skip_setup) {
if (getpid_cached() != 1)
return;
@@ -189,7 +200,7 @@ index 3c6b66e89c8e..c39ebe56a5b3 100644
log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m", arg_early_core_pattern);
}
diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c
index 4427397f2715..8aeb5c829513 100644
index 8cc1696a4f..ab7b4ba2c3 100644
--- a/src/core/smack-setup.c
+++ b/src/core/smack-setup.c
@@ -325,17 +325,17 @@ int mac_smack_setup(bool *loaded_policy) {
@@ -215,7 +226,7 @@ index 4427397f2715..8aeb5c829513 100644
log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m");
#endif
diff --git a/src/hibernate-resume/hibernate-resume.c b/src/hibernate-resume/hibernate-resume.c
index 17e7cd1a009b..87a766771663 100644
index 58e35e403e..1d0beb4008 100644
--- a/src/hibernate-resume/hibernate-resume.c
+++ b/src/hibernate-resume/hibernate-resume.c
@@ -45,7 +45,7 @@ int main(int argc, char *argv[]) {
@@ -228,23 +239,23 @@ index 17e7cd1a009b..87a766771663 100644
log_error_errno(r, "Failed to write '%s' to /sys/power/resume: %m", major_minor);
return EXIT_FAILURE;
diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c
index 1f2451f8e1b4..3f676ec2841a 100644
index d82f01a164..b8fd63346c 100644
--- a/src/libsystemd/sd-device/sd-device.c
+++ b/src/libsystemd/sd-device/sd-device.c
@@ -1849,7 +1849,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr,
@@ -1987,7 +1987,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr,
if (!value)
return -ENOMEM;
- r = write_string_file(path, value, WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_NOFOLLOW);
+ r = write_string_file(path, value, 0 | WRITE_STRING_FILE_NOFOLLOW);
if (r < 0) {
if (r == -ELOOP)
return -EINVAL;
/* On failure, clear cache entry, as we do not know how it fails. */
device_remove_cached_sysattr_value(device, sysattr);
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
index 52a7ea3c77e9..9703de0dabee 100644
index 3bc424b83b..5f5eef0843 100644
--- a/src/login/logind-dbus.c
+++ b/src/login/logind-dbus.c
@@ -1339,7 +1339,7 @@ static int trigger_device(Manager *m, sd_device *d) {
@@ -1330,7 +1330,7 @@ static int trigger_device(Manager *m, sd_device *d) {
if (!t)
return -ENOMEM;
@@ -254,7 +265,7 @@ index 52a7ea3c77e9..9703de0dabee 100644
return 0;
diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c
index f5048d9473cb..b6383ab5c97e 100644
index cb01b25bc6..e92051268b 100644
--- a/src/nspawn/nspawn-cgroup.c
+++ b/src/nspawn/nspawn-cgroup.c
@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) {
@@ -267,10 +278,10 @@ index f5048d9473cb..b6383ab5c97e 100644
log_error_errno(r, "Failed to move process: %m");
goto finish;
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index 734dee1130e0..71add9a055d2 100644
index 0c41a48d4b..9c893b18e4 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -2440,7 +2440,7 @@ static int reset_audit_loginuid(void) {
@@ -2695,7 +2695,7 @@ static int reset_audit_loginuid(void) {
if (streq(p, "4294967295"))
return 0;
@@ -279,7 +290,7 @@ index 734dee1130e0..71add9a055d2 100644
if (r < 0) {
log_error_errno(r,
"Failed to reset audit login UID. This probably means that your kernel is too\n"
@@ -3665,13 +3665,13 @@ static int setup_uid_map(pid_t pid) {
@@ -3948,13 +3948,13 @@ static int setup_uid_map(pid_t pid) {
xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid);
xsprintf(line, UID_FMT " " UID_FMT " " UID_FMT "\n", 0, arg_uid_shift, arg_uid_range);
@@ -296,7 +307,7 @@ index 734dee1130e0..71add9a055d2 100644
return log_error_errno(r, "Failed to write GID map: %m");
diff --git a/src/shared/cgroup-setup.c b/src/shared/cgroup-setup.c
index e8398cbde5ba..ba682ec0c9e7 100644
index f197f715c7..077f893177 100644
--- a/src/shared/cgroup-setup.c
+++ b/src/shared/cgroup-setup.c
@@ -267,7 +267,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) {
@@ -308,7 +319,7 @@ index e8398cbde5ba..ba682ec0c9e7 100644
if (r < 0)
return r;
@@ -817,7 +817,7 @@ int cg_enable_everywhere(
@@ -799,7 +799,7 @@ int cg_enable_everywhere(
return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p);
}
@@ -317,24 +328,11 @@ index e8398cbde5ba..ba682ec0c9e7 100644
if (r < 0) {
log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m",
FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs);
diff --git a/src/shared/sysctl-util.c b/src/shared/sysctl-util.c
index 8543dbd2d05f..76162599817e 100644
--- a/src/shared/sysctl-util.c
+++ b/src/shared/sysctl-util.c
@@ -93,7 +93,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c
log_debug("Setting '%s' to '%s'", p, value);
- return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER);
+ return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | 0);
}
int sysctl_read(const char *property, char **content) {
diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
index fbfddc0262fc..7cc2902154e9 100644
index 262d4cea66..0523e8dc9b 100644
--- a/src/sleep/sleep.c
+++ b/src/sleep/sleep.c
@@ -47,7 +47,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca
@@ -48,7 +48,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca
assert(hibernate_location->swap);
xsprintf(resume_str, "%u:%u", major(hibernate_location->devno), minor(hibernate_location->devno));
@@ -343,7 +341,7 @@ index fbfddc0262fc..7cc2902154e9 100644
if (r < 0)
return log_debug_errno(r, "Failed to write partition device to /sys/power/resume for '%s': '%s': %m",
hibernate_location->swap->device, resume_str);
@@ -74,7 +74,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca
@@ -75,7 +75,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca
}
xsprintf(offset_str, "%" PRIu64, hibernate_location->offset);
@@ -352,7 +350,7 @@ index fbfddc0262fc..7cc2902154e9 100644
if (r < 0)
return log_debug_errno(r, "Failed to write swap file offset to /sys/power/resume_offset for '%s': '%s': %m",
hibernate_location->swap->device, offset_str);
@@ -91,7 +91,7 @@ static int write_mode(char **modes) {
@@ -92,7 +92,7 @@ static int write_mode(char **modes) {
STRV_FOREACH(mode, modes) {
int k;
@@ -361,7 +359,7 @@ index fbfddc0262fc..7cc2902154e9 100644
if (k >= 0)
return 0;
@@ -110,7 +110,7 @@ static int write_state(FILE **f, char **states) {
@@ -114,7 +114,7 @@ static int write_state(FILE **f, char **states) {
STRV_FOREACH(state, states) {
int k;
@@ -370,34 +368,8 @@ index fbfddc0262fc..7cc2902154e9 100644
if (k >= 0)
return 0;
log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", *state);
diff --git a/src/udev/udevadm-trigger.c b/src/udev/udevadm-trigger.c
index 60c68b5029cf..fdca03d3d42c 100644
--- a/src/udev/udevadm-trigger.c
+++ b/src/udev/udevadm-trigger.c
@@ -43,7 +43,7 @@ static int exec_list(sd_device_enumerator *e, const char *action, Set *settle_se
if (!filename)
return log_oom();
- r = write_string_file(filename, action, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file(filename, action, 0);
if (r < 0) {
bool ignore = IN_SET(r, -ENOENT, -EACCES, -ENODEV, -EROFS);
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
index ca65474f2763..38780681431a 100644
--- a/src/udev/udevd.c
+++ b/src/udev/udevd.c
@@ -1089,7 +1089,7 @@ static int synthesize_change_one(sd_device *dev, const char *syspath) {
filename = strjoina(syspath, "/uevent");
log_device_debug(dev, "device is closed, synthesising 'change' on %s", syspath);
- r = write_string_file(filename, "change", WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file(filename, "change", 0);
if (r < 0)
return log_device_debug_errno(dev, r, "Failed to write 'change' to %s: %m", filename);
return 0;
diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
index 9d706085fb47..30dcfa86f4d0 100644
index d1c3febdd5..1cc68694d1 100644
--- a/src/vconsole/vconsole-setup.c
+++ b/src/vconsole/vconsole-setup.c
@@ -116,7 +116,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) {

View File

@@ -1,4 +1,4 @@
From dbe8b3ee45580defeefcac929b897c5437ffc50b Mon Sep 17 00:00:00 2001
From d73755cc60f401f0f20f357752e45aeeeef8e83f Mon Sep 17 00:00:00 2001
From: Scott Murray <scott.murray@konsulko.com>
Date: Fri, 13 Sep 2019 19:26:27 -0400
Subject: [PATCH] Handle __cpu_mask usage
@@ -25,7 +25,7 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h
index 27812dfd5923..0ab40731ea93 100644
index 3c63a58826..4c2d4347fc 100644
--- a/src/shared/cpu-set-util.h
+++ b/src/shared/cpu-set-util.h
@@ -6,6 +6,8 @@
@@ -38,11 +38,11 @@ index 27812dfd5923..0ab40731ea93 100644
typedef struct CPUSet {
cpu_set_t *set;
diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
index c65062d2562c..8b6eefa9cdae 100644
index e1a59d408c..c269ea6e8c 100644
--- a/src/test/test-sizeof.c
+++ b/src/test/test-sizeof.c
@@ -1,6 +1,5 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
/* SPDX-License-Identifier: LGPL-2.1-or-later */
-#include <sched.h>
#include <stdio.h>

View File

@@ -1,4 +1,4 @@
From ef9580ea1e2f1e57af3c7dcb0ec392ba8dbb5c8d Mon Sep 17 00:00:00 2001
From 04e94f9a15101daa8f65a9af269d26cda2a24056 Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Tue, 10 Mar 2020 11:05:20 +0000
Subject: [PATCH] Handle missing gshadow
@@ -8,17 +8,20 @@ allow compilation on musl
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
[Rebased for v247]
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
---
src/shared/group-record-nss.c | 20 ++++++++++++++++++++
src/shared/group-record-nss.h | 4 ++++
src/shared/userdb.c | 6 ++++++
src/shared/user-record-nss.c | 20 ++++++++++++++++++++
src/shared/user-record-nss.h | 4 ++++
src/shared/userdb.c | 6 ++++++
3 files changed, 30 insertions(+)
diff --git a/src/shared/group-record-nss.c b/src/shared/group-record-nss.c
index 77924f1c4067..c64490253ff3 100644
--- a/src/shared/group-record-nss.c
+++ b/src/shared/group-record-nss.c
@@ -19,8 +19,10 @@ int nss_group_to_group_record(
diff --git a/src/shared/user-record-nss.c b/src/shared/user-record-nss.c
index 88b8fc2f8f..a819d41bac 100644
--- a/src/shared/user-record-nss.c
+++ b/src/shared/user-record-nss.c
@@ -331,8 +331,10 @@ int nss_group_to_group_record(
if (isempty(grp->gr_name))
return -EINVAL;
@@ -29,23 +32,23 @@ index 77924f1c4067..c64490253ff3 100644
g = group_record_new();
if (!g)
@@ -36,6 +38,7 @@ int nss_group_to_group_record(
@@ -348,6 +350,7 @@ int nss_group_to_group_record(
g->gid = grp->gr_gid;
+#if ENABLE_GSHADOW
if (sgrp) {
if (hashed_password_valid(sgrp->sg_passwd)) {
if (looks_like_hashed_password(utf8_only(sgrp->sg_passwd))) {
g->hashed_password = strv_new(sgrp->sg_passwd);
@@ -51,6 +54,7 @@ int nss_group_to_group_record(
if (!g->administrators)
return -ENOMEM;
@@ -363,6 +366,7 @@ int nss_group_to_group_record(
if (r < 0)
return r;
}
+#endif
r = json_build(&g->json, JSON_BUILD_OBJECT(
JSON_BUILD_PAIR("groupName", JSON_BUILD_STRING(g->group_name)),
@@ -76,6 +80,7 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
@@ -388,6 +392,7 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
assert(ret_sgrp);
assert(ret_buffer);
@@ -53,7 +56,7 @@ index 77924f1c4067..c64490253ff3 100644
for (;;) {
_cleanup_free_ char *buf = NULL;
struct sgrp sgrp, *result;
@@ -104,6 +109,9 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
@@ -416,6 +421,9 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
buflen *= 2;
buf = mfree(buf);
}
@@ -62,67 +65,67 @@ index 77924f1c4067..c64490253ff3 100644
+#endif
}
int nss_group_record_by_name(const char *name, GroupRecord **ret) {
@@ -111,7 +119,9 @@ int nss_group_record_by_name(const char *name, GroupRecord **ret) {
int nss_group_record_by_name(
@@ -427,7 +435,9 @@ int nss_group_record_by_name(
struct group grp, *result;
bool incomplete = false;
size_t buflen = 4096;
+#if ENABLE_GSHADOW
struct sgrp sgrp;
struct sgrp sgrp, *sresult = NULL;
+#endif
int r;
assert(name);
@@ -141,6 +151,7 @@ int nss_group_record_by_name(const char *name, GroupRecord **ret) {
@@ -457,6 +467,7 @@ int nss_group_record_by_name(
buf = mfree(buf);
}
+#if ENABLE_GSHADOW
r = nss_sgrp_for_group(result, &sgrp, &sbuf);
if (r < 0) {
log_debug_errno(r, "Failed to do shadow lookup for group %s, ignoring: %m", result->gr_name);
@@ -148,6 +159,9 @@ int nss_group_record_by_name(const char *name, GroupRecord **ret) {
}
if (with_shadow) {
r = nss_sgrp_for_group(result, &sgrp, &sbuf);
if (r < 0) {
@@ -468,6 +479,9 @@ int nss_group_record_by_name(
incomplete = true;
r = nss_group_to_group_record(result, r >= 0 ? &sgrp : NULL, ret);
r = nss_group_to_group_record(result, sresult, ret);
+#else
+ r = nss_group_to_group_record(result, NULL, ret);
+#endif
if (r < 0)
return r;
@@ -160,7 +174,9 @@ int nss_group_record_by_gid(gid_t gid, GroupRecord **ret) {
@@ -484,7 +498,9 @@ int nss_group_record_by_gid(
struct group grp, *result;
bool incomplete = false;
size_t buflen = 4096;
+#if ENABLE_GSHADOW
struct sgrp sgrp;
struct sgrp sgrp, *sresult = NULL;
+#endif
int r;
assert(ret);
@@ -188,6 +204,7 @@ int nss_group_record_by_gid(gid_t gid, GroupRecord **ret) {
@@ -512,6 +528,7 @@ int nss_group_record_by_gid(
buf = mfree(buf);
}
+#if ENABLE_GSHADOW
r = nss_sgrp_for_group(result, &sgrp, &sbuf);
if (r < 0) {
log_debug_errno(r, "Failed to do shadow lookup for group %s, ignoring: %m", result->gr_name);
@@ -195,6 +212,9 @@ int nss_group_record_by_gid(gid_t gid, GroupRecord **ret) {
}
if (with_shadow) {
r = nss_sgrp_for_group(result, &sgrp, &sbuf);
if (r < 0) {
@@ -523,6 +540,9 @@ int nss_group_record_by_gid(
incomplete = true;
r = nss_group_to_group_record(result, r >= 0 ? &sgrp : NULL, ret);
r = nss_group_to_group_record(result, sresult, ret);
+#else
+ r = nss_group_to_group_record(result, NULL, ret);
+#endif
if (r < 0)
return r;
diff --git a/src/shared/group-record-nss.h b/src/shared/group-record-nss.h
index 38b2995178ff..d7d95c44cf11 100644
--- a/src/shared/group-record-nss.h
+++ b/src/shared/group-record-nss.h
diff --git a/src/shared/user-record-nss.h b/src/shared/user-record-nss.h
index 22ab04d6ee..4e52e7a911 100644
--- a/src/shared/user-record-nss.h
+++ b/src/shared/user-record-nss.h
@@ -2,7 +2,11 @@
#pragma once
@@ -132,14 +135,14 @@ index 38b2995178ff..d7d95c44cf11 100644
+#else
+struct sgrp;
+#endif
#include "group-record.h"
#include <pwd.h>
#include <shadow.h>
diff --git a/src/shared/userdb.c b/src/shared/userdb.c
index 92f8796768d7..5d912862f85c 100644
index 613350bd46..5c821d28cd 100644
--- a/src/shared/userdb.c
+++ b/src/shared/userdb.c
@@ -924,13 +924,16 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
@@ -938,13 +938,16 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
if (gr) {
_cleanup_free_ char *buffer = NULL;
bool incomplete = false;
@@ -153,10 +156,10 @@ index 92f8796768d7..5d912862f85c 100644
iterator->synthesize_nobody = false;
+#if ENABLE_GSHADOW
r = nss_sgrp_for_group(gr, &sgrp, &buffer);
if (r < 0) {
log_debug_errno(r, "Failed to acquire shadow entry for group %s, ignoring: %m", gr->gr_name);
@@ -938,6 +941,9 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
if (!FLAGS_SET(iterator->flags, USERDB_AVOID_SHADOW)) {
r = nss_sgrp_for_group(gr, &sgrp, &buffer);
if (r < 0) {
@@ -957,6 +960,9 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
}
r = nss_group_to_group_record(gr, r >= 0 ? &sgrp : NULL, ret);
@@ -166,6 +169,3 @@ index 92f8796768d7..5d912862f85c 100644
if (r < 0)
return r;
--
2.17.1

View File

@@ -0,0 +1,34 @@
From 366cd28f5f93ba7c861cd32a718251770d74830e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 12 Apr 2021 23:44:53 -0700
Subject: [PATCH] missing_syscall.h: Define MIPS ABI defines for musl
musl does not define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32, _MIPS_SIM_ABI64
unlike glibc where these are provided by libc headers, therefore define
them here in case they are undefined
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/basic/missing_syscall.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h
index 1384324804..0202d00372 100644
--- a/src/basic/missing_syscall.h
+++ b/src/basic/missing_syscall.h
@@ -20,6 +20,12 @@
#include <asm/sgidefs.h>
#endif
+#ifndef _MIPS_SIM_ABI32
+#define _MIPS_SIM_ABI32 1
+#define _MIPS_SIM_NABI32 2
+#define _MIPS_SIM_ABI64 3
+#endif
+
#include "missing_keyctl.h"
#include "missing_stat.h"
#include "missing_syscall_def.h"