blob: 8e7a2fb6e4f87c20c65d58af3fee9c0a412009a5 [file] [log] [blame]
Andrew Geissler706d5aa2021-02-12 15:55:30 -06001From 7e771de87cf728a8678f1f28f391bba3589e2496 Mon Sep 17 00:00:00 2001
Brad Bishop19323692019-04-05 15:28:33 -04002From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 25 Feb 2019 14:18:21 +0800
Andrew Geissler706d5aa2021-02-12 15:55:30 -06004Subject: [PATCH] src/basic/missing.h: check for missing strndupa
Brad Bishop19323692019-04-05 15:28:33 -04005
6include missing.h for definition of strndupa
7
8Upstream-Status: Inappropriate [musl specific]
9
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Brad Bishopc342db32019-05-15 21:57:59 -040012[Rebased for v242]
13Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Brad Bishopa34c0302019-09-23 22:34:48 -040014[rebased for systemd 243]
15Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Andrew Geissler82c905d2020-04-13 13:39:40 -050016Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
17[rebased for systemd 244]
Andrew Geissler706d5aa2021-02-12 15:55:30 -060018
Brad Bishop19323692019-04-05 15:28:33 -040019---
Brad Bishopc342db32019-05-15 21:57:59 -040020 meson.build | 1 +
21 src/backlight/backlight.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050022 src/basic/cgroup-util.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040023 src/basic/env-util.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050024 src/basic/log.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040025 src/basic/missing_stdlib.h | 12 ++++++++++++
26 src/basic/mkdir.c | 1 +
27 src/basic/parse-util.c | 1 +
Andrew Geissler635e0e42020-08-21 15:58:33 -050028 src/basic/path-lookup.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040029 src/basic/proc-cmdline.c | 1 +
30 src/basic/procfs-util.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050031 src/basic/selinux-util.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040032 src/basic/time-util.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050033 src/boot/bless-boot.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040034 src/core/dbus-cgroup.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050035 src/core/dbus-execute.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040036 src/core/dbus-util.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050037 src/core/execute.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040038 src/core/kmod-setup.c | 1 +
39 src/core/service.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050040 src/coredump/coredump-vacuum.c | 1 +
41 src/journal-remote/journal-remote-main.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040042 src/journal/journalctl.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050043 src/journal/sd-journal.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040044 src/libsystemd/sd-bus/bus-message.c | 1 +
45 src/libsystemd/sd-bus/bus-objects.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050046 src/libsystemd/sd-bus/bus-socket.c | 1 +
47 src/libsystemd/sd-bus/sd-bus.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040048 src/libsystemd/sd-bus/test-bus-benchmark.c | 1 +
49 src/locale/keymap-util.c | 1 +
Brad Bishopa34c0302019-09-23 22:34:48 -040050 src/login/pam_systemd.c | 1 +
51 src/network/generator/network-generator.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040052 src/nspawn/nspawn-settings.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050053 src/nss-mymachines/nss-mymachines.c | 1 +
54 src/portable/portable.c | 1 +
55 src/resolve/resolvectl.c | 1 +
Andrew Geissler635e0e42020-08-21 15:58:33 -050056 src/shared/bus-get-properties.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050057 src/shared/bus-unit-procs.c | 1 +
58 src/shared/bus-unit-util.c | 1 +
59 src/shared/bus-util.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040060 src/shared/dns-domain.c | 1 +
61 src/shared/journal-importer.c | 1 +
62 src/shared/logs-show.c | 1 +
63 src/shared/pager.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040064 src/shared/uid-range.c | 1 +
65 src/socket-proxy/socket-proxyd.c | 1 +
66 src/test/test-hexdecoct.c | 1 +
67 src/udev/udev-builtin-path_id.c | 1 +
Brad Bishopa34c0302019-09-23 22:34:48 -040068 src/udev/udev-event.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040069 src/udev/udev-rules.c | 1 +
Andrew Geissler635e0e42020-08-21 15:58:33 -050070 50 files changed, 61 insertions(+)
Brad Bishop19323692019-04-05 15:28:33 -040071
Brad Bishopa34c0302019-09-23 22:34:48 -040072diff --git a/meson.build b/meson.build
Andrew Geissler706d5aa2021-02-12 15:55:30 -060073index 9187439bdd..bea9935a91 100644
Brad Bishop19323692019-04-05 15:28:33 -040074--- a/meson.build
75+++ b/meson.build
Andrew Geissler706d5aa2021-02-12 15:55:30 -060076@@ -527,6 +527,7 @@ foreach ident : [
77 #include <unistd.h>
78 #include <signal.h>
Andrew Geissler82c905d2020-04-13 13:39:40 -050079 #include <sys/wait.h>'''],
Brad Bishop19323692019-04-05 15:28:33 -040080+ ['strndupa' , '''#include <string.h>'''],
81 ]
82
83 have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
Brad Bishopa34c0302019-09-23 22:34:48 -040084diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -060085index 3a644363e1..73946a829b 100644
Brad Bishopc342db32019-05-15 21:57:59 -040086--- a/src/backlight/backlight.c
87+++ b/src/backlight/backlight.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -060088@@ -17,6 +17,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -040089 #include "string-util.h"
90 #include "strv.h"
91 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -050092+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -040093
Andrew Geissler706d5aa2021-02-12 15:55:30 -060094 static int find_pci_or_platform_parent(sd_device *device, sd_device **ret) {
95 const char *subsystem, *sysname, *value;
Andrew Geissler82c905d2020-04-13 13:39:40 -050096diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -060097index e94fcfad02..856a7068b0 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -050098--- a/src/basic/cgroup-util.c
99+++ b/src/basic/cgroup-util.c
Andrew Geissler635e0e42020-08-21 15:58:33 -0500100@@ -38,6 +38,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500101 #include "unit-name.h"
102 #include "user-util.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -0500103 #include "xattr-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500104+#include "missing_stdlib.h"
105
106 static int cg_enumerate_items(const char *controller, const char *path, FILE **_f, const char *item) {
107 _cleanup_free_ char *fs = NULL;
Brad Bishopa34c0302019-09-23 22:34:48 -0400108diff --git a/src/basic/env-util.c b/src/basic/env-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600109index b8dc98915f..5049b37594 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400110--- a/src/basic/env-util.c
111+++ b/src/basic/env-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500112@@ -15,6 +15,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400113 #include "string-util.h"
114 #include "strv.h"
115 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500116+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400117
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600118 #define VALID_CHARS_ENV_NAME \
119 DIGITS LETTERS \
Andrew Geissler82c905d2020-04-13 13:39:40 -0500120diff --git a/src/basic/log.c b/src/basic/log.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600121index c6fe203808..b7ef932d28 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500122--- a/src/basic/log.c
123+++ b/src/basic/log.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600124@@ -35,6 +35,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500125 #include "terminal-util.h"
126 #include "time-util.h"
127 #include "utf8.h"
128+#include "missing_stdlib.h"
129
130 #define SNDBUF_SIZE (8*1024*1024)
131
Brad Bishopa34c0302019-09-23 22:34:48 -0400132diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600133index 188a8d4406..1e16ec287a 100644
Brad Bishop19323692019-04-05 15:28:33 -0400134--- a/src/basic/missing_stdlib.h
135+++ b/src/basic/missing_stdlib.h
136@@ -11,3 +11,15 @@
Brad Bishopc68388fc2019-08-26 01:33:31 -0400137 # error "neither secure_getenv nor __secure_getenv are available"
Brad Bishop19323692019-04-05 15:28:33 -0400138 # endif
139 #endif
140+
141+/* string.h */
142+#if ! HAVE_STRNDUPA
143+#define strndupa(s, n) \
144+ ({ \
145+ const char *__old = (s); \
146+ size_t __len = strnlen(__old, (n)); \
147+ char *__new = (char *)alloca(__len + 1); \
148+ __new[__len] = '\0'; \
149+ (char *)memcpy(__new, __old, __len); \
150+ })
151+#endif
Brad Bishopa34c0302019-09-23 22:34:48 -0400152diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600153index 6ebc2b95fd..88f4359bab 100644
Brad Bishop19323692019-04-05 15:28:33 -0400154--- a/src/basic/mkdir.c
155+++ b/src/basic/mkdir.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600156@@ -13,6 +13,7 @@
Brad Bishop19323692019-04-05 15:28:33 -0400157 #include "stat-util.h"
158 #include "stdio-util.h"
159 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500160+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400161
Andrew Geissler635e0e42020-08-21 15:58:33 -0500162 int mkdir_safe_internal(
163 const char *path,
Brad Bishopa34c0302019-09-23 22:34:48 -0400164diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600165index 44f0438cf4..54b4133343 100644
Brad Bishop19323692019-04-05 15:28:33 -0400166--- a/src/basic/parse-util.c
167+++ b/src/basic/parse-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600168@@ -19,6 +19,7 @@
Brad Bishop19323692019-04-05 15:28:33 -0400169 #include "stat-util.h"
170 #include "string-util.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -0500171 #include "strv.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500172+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400173
174 int parse_boolean(const char *v) {
175 if (!v)
Andrew Geissler635e0e42020-08-21 15:58:33 -0500176diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600177index 52968dee34..2f4f7e3dcd 100644
Andrew Geissler635e0e42020-08-21 15:58:33 -0500178--- a/src/basic/path-lookup.c
179+++ b/src/basic/path-lookup.c
180@@ -15,6 +15,7 @@
181 #include "strv.h"
182 #include "tmpfile-util.h"
183 #include "user-util.h"
184+#include "missing_stdlib.h"
185
186 int xdg_user_runtime_dir(char **ret, const char *suffix) {
187 const char *e;
Brad Bishopa34c0302019-09-23 22:34:48 -0400188diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600189index ba47ca5812..8baf728fde 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400190--- a/src/basic/proc-cmdline.c
191+++ b/src/basic/proc-cmdline.c
192@@ -15,6 +15,7 @@
193 #include "string-util.h"
194 #include "util.h"
195 #include "virt.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500196+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400197
198 int proc_cmdline(char **ret) {
199 const char *e;
Brad Bishopa34c0302019-09-23 22:34:48 -0400200diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600201index 7aaf95bfce..da7e836f14 100644
Brad Bishop19323692019-04-05 15:28:33 -0400202--- a/src/basic/procfs-util.c
203+++ b/src/basic/procfs-util.c
204@@ -11,6 +11,7 @@
205 #include "procfs-util.h"
206 #include "stdio-util.h"
207 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500208+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400209
210 int procfs_tasks_get_limit(uint64_t *ret) {
211 _cleanup_free_ char *value = NULL;
Andrew Geissler82c905d2020-04-13 13:39:40 -0500212diff --git a/src/basic/selinux-util.c b/src/basic/selinux-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600213index c94ee26bd9..14e35b4653 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500214--- a/src/basic/selinux-util.c
215+++ b/src/basic/selinux-util.c
Andrew Geissler635e0e42020-08-21 15:58:33 -0500216@@ -27,6 +27,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500217 #include "selinux-util.h"
218 #include "stdio-util.h"
219 #include "time-util.h"
220+#include "missing_stdlib.h"
221
222 #if HAVE_SELINUX
223 DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free);
Brad Bishopa34c0302019-09-23 22:34:48 -0400224diff --git a/src/basic/time-util.c b/src/basic/time-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600225index 15cc1b8851..02bb3f01f9 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400226--- a/src/basic/time-util.c
227+++ b/src/basic/time-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600228@@ -26,6 +26,7 @@
Brad Bishop19323692019-04-05 15:28:33 -0400229 #include "string-util.h"
230 #include "strv.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400231 #include "time-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500232+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400233
Brad Bishopc342db32019-05-15 21:57:59 -0400234 static clockid_t map_clock_id(clockid_t c) {
Brad Bishop19323692019-04-05 15:28:33 -0400235
Andrew Geissler82c905d2020-04-13 13:39:40 -0500236diff --git a/src/boot/bless-boot.c b/src/boot/bless-boot.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600237index b96e1f927f..cba979baca 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500238--- a/src/boot/bless-boot.c
239+++ b/src/boot/bless-boot.c
240@@ -18,6 +18,7 @@
241 #include "util.h"
242 #include "verbs.h"
243 #include "virt.h"
244+#include "missing_stdlib.h"
245
246 static char **arg_path = NULL;
247
Brad Bishopa34c0302019-09-23 22:34:48 -0400248diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600249index b7d2e32639..fdbc1df95e 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400250--- a/src/core/dbus-cgroup.c
251+++ b/src/core/dbus-cgroup.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600252@@ -15,6 +15,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400253 #include "fileio.h"
254 #include "limits-util.h"
255 #include "path-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500256+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400257
Andrew Geissler82c905d2020-04-13 13:39:40 -0500258 BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve);
Brad Bishopc342db32019-05-15 21:57:59 -0400259
Andrew Geissler82c905d2020-04-13 13:39:40 -0500260diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600261index 50f7ada8ce..5c760ee487 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500262--- a/src/core/dbus-execute.c
263+++ b/src/core/dbus-execute.c
264@@ -41,6 +41,7 @@
265 #include "unit-printf.h"
266 #include "user-util.h"
267 #include "utf8.h"
268+#include "missing_stdlib.h"
269
270 BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput);
271 static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
Brad Bishopa34c0302019-09-23 22:34:48 -0400272diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600273index 951450e53d..50d134e9a1 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400274--- a/src/core/dbus-util.c
275+++ b/src/core/dbus-util.c
276@@ -7,6 +7,7 @@
277 #include "unit-printf.h"
278 #include "user-util.h"
279 #include "unit.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500280+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400281
282 int bus_property_get_triggered_unit(
283 sd_bus *bus,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500284diff --git a/src/core/execute.c b/src/core/execute.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600285index 2a4840a3a9..d3f1e0e0f8 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500286--- a/src/core/execute.c
287+++ b/src/core/execute.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600288@@ -89,6 +89,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500289 #include "unit.h"
290 #include "user-util.h"
291 #include "utmp-wtmp.h"
292+#include "missing_stdlib.h"
293
294 #define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC)
295 #define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC)
Brad Bishopa34c0302019-09-23 22:34:48 -0400296diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600297index 09ccd613e3..f4e64fa283 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400298--- a/src/core/kmod-setup.c
299+++ b/src/core/kmod-setup.c
300@@ -11,6 +11,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400301 #include "macro.h"
302 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500303 #include "missing_type.h"
304+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400305
306 #if HAVE_KMOD
Andrew Geissler82c905d2020-04-13 13:39:40 -0500307 #include "module-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400308diff --git a/src/core/service.c b/src/core/service.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600309index 00e61945ba..1ecab28354 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400310--- a/src/core/service.c
311+++ b/src/core/service.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500312@@ -41,6 +41,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400313 #include "unit.h"
314 #include "utf8.h"
315 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500316+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400317
318 static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
319 [SERVICE_DEAD] = UNIT_INACTIVE,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500320diff --git a/src/coredump/coredump-vacuum.c b/src/coredump/coredump-vacuum.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600321index 35885dfb47..bb9f0660a6 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500322--- a/src/coredump/coredump-vacuum.c
323+++ b/src/coredump/coredump-vacuum.c
324@@ -16,6 +16,7 @@
325 #include "string-util.h"
326 #include "time-util.h"
327 #include "user-util.h"
328+#include "missing_stdlib.h"
329
330 #define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL) /* 1 MiB */
331 #define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */
332diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600333index 77dfdefd64..e21ecbeff8 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500334--- a/src/journal-remote/journal-remote-main.c
335+++ b/src/journal-remote/journal-remote-main.c
336@@ -22,6 +22,7 @@
337 #include "stat-util.h"
338 #include "string-table.h"
339 #include "strv.h"
340+#include "missing_stdlib.h"
341
342 #define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem"
343 #define CERT_FILE CERTIFICATE_ROOT "/certs/journal-remote.pem"
Brad Bishopa34c0302019-09-23 22:34:48 -0400344diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600345index 8d4897b942..15476b3c83 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400346--- a/src/journal/journalctl.c
347+++ b/src/journal/journalctl.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600348@@ -69,6 +69,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400349 #include "unit-name.h"
350 #include "user-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400351 #include "varlink.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500352+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400353
354 #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
Andrew Geissler82c905d2020-04-13 13:39:40 -0500355 #define PROCESS_INOTIFY_INTERVAL 1024 /* Every 1,024 messages processed */
356diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600357index 6fb0abb419..2d94d9938e 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500358--- a/src/journal/sd-journal.c
359+++ b/src/journal/sd-journal.c
360@@ -40,6 +40,7 @@
361 #include "string-util.h"
362 #include "strv.h"
363 #include "syslog-util.h"
364+#include "missing_stdlib.h"
365
366 #define JOURNAL_FILES_MAX 7168
Brad Bishopc342db32019-05-15 21:57:59 -0400367
Brad Bishopa34c0302019-09-23 22:34:48 -0400368diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600369index 55e35cd902..0ed98f9224 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400370--- a/src/libsystemd/sd-bus/bus-message.c
371+++ b/src/libsystemd/sd-bus/bus-message.c
372@@ -21,6 +21,7 @@
373 #include "strv.h"
374 #include "time-util.h"
375 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500376+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400377
378 static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
379
Brad Bishopa34c0302019-09-23 22:34:48 -0400380diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600381index 6abac8822c..c74c9cd7fa 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400382--- a/src/libsystemd/sd-bus/bus-objects.c
383+++ b/src/libsystemd/sd-bus/bus-objects.c
384@@ -13,6 +13,7 @@
385 #include "set.h"
386 #include "string-util.h"
387 #include "strv.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500388+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400389
390 static int node_vtable_get_userdata(
391 sd_bus *bus,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500392diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600393index fc7e8e844a..7af4dd2712 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500394--- a/src/libsystemd/sd-bus/bus-socket.c
395+++ b/src/libsystemd/sd-bus/bus-socket.c
396@@ -28,6 +28,7 @@
397 #include "string-util.h"
398 #include "user-util.h"
399 #include "utf8.h"
400+#include "missing_stdlib.h"
401
402 #define SNDBUF_SIZE (8*1024*1024)
403
404diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600405index 9de5e454a6..fe86c93c63 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500406--- a/src/libsystemd/sd-bus/sd-bus.c
407+++ b/src/libsystemd/sd-bus/sd-bus.c
408@@ -41,6 +41,7 @@
409 #include "process-util.h"
410 #include "string-util.h"
411 #include "strv.h"
412+#include "missing_stdlib.h"
413
414 #define log_debug_bus_message(m) \
415 do { \
Brad Bishopa34c0302019-09-23 22:34:48 -0400416diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c b/src/libsystemd/sd-bus/test-bus-benchmark.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600417index 8de0a859ee..58044b6ba9 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400418--- a/src/libsystemd/sd-bus/test-bus-benchmark.c
419+++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
420@@ -14,6 +14,7 @@
421 #include "missing_resource.h"
422 #include "time-util.h"
423 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500424+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400425
426 #define MAX_SIZE (2*1024*1024)
427
Brad Bishopa34c0302019-09-23 22:34:48 -0400428diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600429index 233d081300..40a32b9700 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400430--- a/src/locale/keymap-util.c
431+++ b/src/locale/keymap-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500432@@ -21,6 +21,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400433 #include "string-util.h"
434 #include "strv.h"
435 #include "tmpfile-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500436+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400437
438 static bool startswith_comma(const char *s, const char *prefix) {
439 s = startswith(s, prefix);
Brad Bishopa34c0302019-09-23 22:34:48 -0400440diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600441index 16f4289585..6c5e438b36 100644
Brad Bishopa34c0302019-09-23 22:34:48 -0400442--- a/src/login/pam_systemd.c
443+++ b/src/login/pam_systemd.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500444@@ -31,6 +31,7 @@
445 #include "locale-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400446 #include "login-util.h"
447 #include "macro.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500448+#include "missing_stdlib.h"
449 #include "pam-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400450 #include "parse-util.h"
451 #include "path-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400452diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600453index bed1e42697..e4847c2bee 100644
Brad Bishopa34c0302019-09-23 22:34:48 -0400454--- a/src/network/generator/network-generator.c
455+++ b/src/network/generator/network-generator.c
456@@ -13,6 +13,7 @@
457 #include "string-table.h"
458 #include "string-util.h"
459 #include "strv.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500460+#include "missing_stdlib.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400461
462 /*
463 # .network
464diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600465index d341fa25aa..91646bc2c2 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400466--- a/src/nspawn/nspawn-settings.c
467+++ b/src/nspawn/nspawn-settings.c
468@@ -16,6 +16,7 @@
469 #include "strv.h"
Brad Bishop19323692019-04-05 15:28:33 -0400470 #include "user-util.h"
471 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500472+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400473
Brad Bishopc342db32019-05-15 21:57:59 -0400474 Settings *settings_new(void) {
475 Settings *s;
Andrew Geissler82c905d2020-04-13 13:39:40 -0500476diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600477index 5db0dcef76..681f8677e4 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500478--- a/src/nss-mymachines/nss-mymachines.c
479+++ b/src/nss-mymachines/nss-mymachines.c
480@@ -19,6 +19,7 @@
Andrew Geissler635e0e42020-08-21 15:58:33 -0500481 #include "nss-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500482 #include "signal-util.h"
483 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500484+#include "missing_stdlib.h"
485
486 NSS_GETHOSTBYNAME_PROTOTYPES(mymachines);
487 NSS_GETPW_PROTOTYPES(mymachines);
488diff --git a/src/portable/portable.c b/src/portable/portable.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600489index 3a1367ec2b..f29336cb1e 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500490--- a/src/portable/portable.c
491+++ b/src/portable/portable.c
492@@ -31,6 +31,7 @@
493 #include "strv.h"
494 #include "tmpfile-util.h"
495 #include "user-util.h"
496+#include "missing_stdlib.h"
497
498 static const char profile_dirs[] = CONF_PATHS_NULSTR("systemd/portable/profile");
499
500diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600501index 3072b984e5..c46ae374bf 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500502--- a/src/resolve/resolvectl.c
503+++ b/src/resolve/resolvectl.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600504@@ -36,6 +36,7 @@
505 #include "strv.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500506 #include "terminal-util.h"
507 #include "verbs.h"
508+#include "missing_stdlib.h"
509
510 static int arg_family = AF_UNSPEC;
511 static int arg_ifindex = 0;
Andrew Geissler635e0e42020-08-21 15:58:33 -0500512diff --git a/src/shared/bus-get-properties.c b/src/shared/bus-get-properties.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600513index 8ad4694046..da5082c02a 100644
Andrew Geissler635e0e42020-08-21 15:58:33 -0500514--- a/src/shared/bus-get-properties.c
515+++ b/src/shared/bus-get-properties.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600516@@ -3,6 +3,7 @@
517 #include "bus-get-properties.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -0500518 #include "rlimit-util.h"
519 #include "string-util.h"
520+#include "missing_stdlib.h"
521
522 int bus_property_get_bool(
523 sd_bus *bus,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500524diff --git a/src/shared/bus-unit-procs.c b/src/shared/bus-unit-procs.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600525index b21fe39326..af2640005c 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500526--- a/src/shared/bus-unit-procs.c
527+++ b/src/shared/bus-unit-procs.c
528@@ -10,6 +10,7 @@
529 #include "sort-util.h"
530 #include "string-util.h"
531 #include "terminal-util.h"
532+#include "missing_stdlib.h"
533
534 struct CGroupInfo {
535 char *cgroup_path;
536diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600537index f2652ed9a5..eb019fc89f 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500538--- a/src/shared/bus-unit-util.c
539+++ b/src/shared/bus-unit-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600540@@ -39,6 +39,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500541 #include "unit-def.h"
542 #include "user-util.h"
543 #include "utf8.h"
544+#include "missing_stdlib.h"
545
546 int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
547 assert(message);
548diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600549index 77c1c62182..5cd31f3c15 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500550--- a/src/shared/bus-util.c
551+++ b/src/shared/bus-util.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600552@@ -22,6 +22,7 @@
Andrew Geissler635e0e42020-08-21 15:58:33 -0500553 #include "socket-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500554 #include "stdio-util.h"
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600555 /* #include "string-util.h" */
Andrew Geissler82c905d2020-04-13 13:39:40 -0500556+#include "missing_stdlib.h"
557
558 static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
559 sd_event *e = userdata;
Brad Bishopa34c0302019-09-23 22:34:48 -0400560diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600561index b812665315..8e68f7f8fc 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400562--- a/src/shared/dns-domain.c
563+++ b/src/shared/dns-domain.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600564@@ -23,6 +23,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400565 #include "string-util.h"
566 #include "strv.h"
567 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500568+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400569
570 int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
571 const char *n;
Brad Bishopa34c0302019-09-23 22:34:48 -0400572diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600573index 7c4fc7021d..3fbaf5a639 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400574--- a/src/shared/journal-importer.c
575+++ b/src/shared/journal-importer.c
Brad Bishopa34c0302019-09-23 22:34:48 -0400576@@ -14,6 +14,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400577 #include "parse-util.h"
578 #include "string-util.h"
579 #include "unaligned.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500580+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400581
582 enum {
583 IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */
Brad Bishopa34c0302019-09-23 22:34:48 -0400584diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600585index 899e894ab7..628854ac9c 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400586--- a/src/shared/logs-show.c
587+++ b/src/shared/logs-show.c
Andrew Geissler635e0e42020-08-21 15:58:33 -0500588@@ -41,6 +41,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400589 #include "utf8.h"
590 #include "util.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -0500591 #include "web-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500592+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400593
594 /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
595 #define PRINT_LINE_THRESHOLD 3
Brad Bishopa34c0302019-09-23 22:34:48 -0400596diff --git a/src/shared/pager.c b/src/shared/pager.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600597index e03be6d23b..50e3d1f75c 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400598--- a/src/shared/pager.c
599+++ b/src/shared/pager.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600600@@ -23,6 +23,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400601 #include "strv.h"
602 #include "terminal-util.h"
603 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500604+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400605
606 static pid_t pager_pid = 0;
607
Brad Bishopa34c0302019-09-23 22:34:48 -0400608diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600609index 7cb7d8a477..8e7d7f9e7c 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400610--- a/src/shared/uid-range.c
611+++ b/src/shared/uid-range.c
612@@ -9,6 +9,7 @@
613 #include "sort-util.h"
614 #include "uid-range.h"
615 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500616+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400617
Brad Bishop19323692019-04-05 15:28:33 -0400618 static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
619 assert(range);
Brad Bishopa34c0302019-09-23 22:34:48 -0400620diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600621index b461aead60..9941695ed9 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400622--- a/src/socket-proxy/socket-proxyd.c
623+++ b/src/socket-proxy/socket-proxyd.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500624@@ -26,6 +26,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400625 #include "socket-util.h"
626 #include "string-util.h"
627 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500628+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400629
630 #define BUFFER_SIZE (256 * 1024)
631
Brad Bishopa34c0302019-09-23 22:34:48 -0400632diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600633index 52217429b1..70708dedf3 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400634--- a/src/test/test-hexdecoct.c
635+++ b/src/test/test-hexdecoct.c
636@@ -6,6 +6,7 @@
637 #include "hexdecoct.h"
638 #include "macro.h"
639 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500640+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400641
642 static void test_hexchar(void) {
643 assert_se(hexchar(0xa) == 'a');
Brad Bishopa34c0302019-09-23 22:34:48 -0400644diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600645index 6c020ac0ed..10723ec46c 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400646--- a/src/udev/udev-builtin-path_id.c
647+++ b/src/udev/udev-builtin-path_id.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500648@@ -22,6 +22,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400649 #include "strv.h"
650 #include "sysexits.h"
651 #include "udev-builtin.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500652+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400653
654 _printf_(2,3)
655 static void path_prepend(char **path, const char *fmt, ...) {
Brad Bishopa34c0302019-09-23 22:34:48 -0400656diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600657index e1c2baf7f2..62d4086802 100644
Brad Bishopa34c0302019-09-23 22:34:48 -0400658--- a/src/udev/udev-event.c
659+++ b/src/udev/udev-event.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500660@@ -34,6 +34,7 @@
Brad Bishopa34c0302019-09-23 22:34:48 -0400661 #include "udev-util.h"
662 #include "udev-watch.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400663 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500664+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400665
Brad Bishopa34c0302019-09-23 22:34:48 -0400666 typedef struct Spawn {
667 sd_device *device;
668diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
Andrew Geissler706d5aa2021-02-12 15:55:30 -0600669index c36f032f66..36970813d8 100644
Brad Bishopa34c0302019-09-23 22:34:48 -0400670--- a/src/udev/udev-rules.c
671+++ b/src/udev/udev-rules.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500672@@ -30,6 +30,7 @@
Brad Bishopa34c0302019-09-23 22:34:48 -0400673 #include "udev-rules.h"
674 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500675 #include "virt.h"
676+#include "missing_stdlib.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400677
678 #define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
679