blob: 154e57b540d55c90b8513cae6a2ed410ac905dff [file] [log] [blame]
Andrew Geisslerc723b722021-01-08 16:14:09 -06001From 5aeae0ea89f5af74ed5d95bed1d87a03b3801ff0 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 Geisslerc723b722021-01-08 16:14:09 -06004Subject: [PATCH 05/26] 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 Geisslerc723b722021-01-08 16:14:09 -060018[Rebased for v247]
19Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
Brad Bishop19323692019-04-05 15:28:33 -040020---
Brad Bishopc342db32019-05-15 21:57:59 -040021 meson.build | 1 +
22 src/backlight/backlight.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050023 src/basic/cgroup-util.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040024 src/basic/env-util.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050025 src/basic/log.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040026 src/basic/missing_stdlib.h | 12 ++++++++++++
27 src/basic/mkdir.c | 1 +
28 src/basic/parse-util.c | 1 +
Andrew Geissler635e0e42020-08-21 15:58:33 -050029 src/basic/path-lookup.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040030 src/basic/proc-cmdline.c | 1 +
31 src/basic/procfs-util.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050032 src/basic/selinux-util.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040033 src/basic/time-util.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050034 src/boot/bless-boot.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040035 src/core/dbus-cgroup.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050036 src/core/dbus-execute.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040037 src/core/dbus-util.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050038 src/core/execute.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040039 src/core/kmod-setup.c | 1 +
40 src/core/service.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050041 src/coredump/coredump-vacuum.c | 1 +
42 src/journal-remote/journal-remote-main.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040043 src/journal/journalctl.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050044 src/journal/sd-journal.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040045 src/libsystemd/sd-bus/bus-message.c | 1 +
46 src/libsystemd/sd-bus/bus-objects.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050047 src/libsystemd/sd-bus/bus-socket.c | 1 +
48 src/libsystemd/sd-bus/sd-bus.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040049 src/libsystemd/sd-bus/test-bus-benchmark.c | 1 +
50 src/locale/keymap-util.c | 1 +
Brad Bishopa34c0302019-09-23 22:34:48 -040051 src/login/pam_systemd.c | 1 +
52 src/network/generator/network-generator.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040053 src/nspawn/nspawn-settings.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050054 src/nss-mymachines/nss-mymachines.c | 1 +
55 src/portable/portable.c | 1 +
56 src/resolve/resolvectl.c | 1 +
Andrew Geissler635e0e42020-08-21 15:58:33 -050057 src/shared/bus-get-properties.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050058 src/shared/bus-unit-procs.c | 1 +
59 src/shared/bus-unit-util.c | 1 +
60 src/shared/bus-util.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040061 src/shared/dns-domain.c | 1 +
62 src/shared/journal-importer.c | 1 +
63 src/shared/logs-show.c | 1 +
64 src/shared/pager.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040065 src/shared/uid-range.c | 1 +
66 src/socket-proxy/socket-proxyd.c | 1 +
67 src/test/test-hexdecoct.c | 1 +
68 src/udev/udev-builtin-path_id.c | 1 +
Brad Bishopa34c0302019-09-23 22:34:48 -040069 src/udev/udev-event.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040070 src/udev/udev-rules.c | 1 +
Andrew Geissler635e0e42020-08-21 15:58:33 -050071 50 files changed, 61 insertions(+)
Brad Bishop19323692019-04-05 15:28:33 -040072
Brad Bishopa34c0302019-09-23 22:34:48 -040073diff --git a/meson.build b/meson.build
Andrew Geisslerc723b722021-01-08 16:14:09 -060074index 6aa47fc755..0d0fa4963c 100644
Brad Bishop19323692019-04-05 15:28:33 -040075--- a/meson.build
76+++ b/meson.build
Andrew Geisslerc723b722021-01-08 16:14:09 -060077@@ -535,6 +535,7 @@ foreach ident : [
Andrew Geissler82c905d2020-04-13 13:39:40 -050078 #include <sys/wait.h>'''],
Andrew Geisslerc723b722021-01-08 16:14:09 -060079 ['mallinfo', '''#include <malloc.h>'''],
80 ['close_range', '''#include <unistd.h>'''],
Brad Bishop19323692019-04-05 15:28:33 -040081+ ['strndupa' , '''#include <string.h>'''],
82 ]
83
84 have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
Brad Bishopa34c0302019-09-23 22:34:48 -040085diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
Andrew Geisslerc723b722021-01-08 16:14:09 -060086index d1b6a81e33..38b7008371 100644
Brad Bishopc342db32019-05-15 21:57:59 -040087--- a/src/backlight/backlight.c
88+++ b/src/backlight/backlight.c
Andrew Geisslerc723b722021-01-08 16:14:09 -060089@@ -19,6 +19,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -040090 #include "string-util.h"
91 #include "strv.h"
92 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -050093+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -040094
Andrew Geisslerc723b722021-01-08 16:14:09 -060095 static int help(void) {
96 _cleanup_free_ char *link = NULL;
Andrew Geissler82c905d2020-04-13 13:39:40 -050097diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -060098index f28bf1866a..bb960f183c 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -050099--- a/src/basic/cgroup-util.c
100+++ b/src/basic/cgroup-util.c
Andrew Geissler635e0e42020-08-21 15:58:33 -0500101@@ -38,6 +38,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500102 #include "unit-name.h"
103 #include "user-util.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -0500104 #include "xattr-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500105+#include "missing_stdlib.h"
106
107 static int cg_enumerate_items(const char *controller, const char *path, FILE **_f, const char *item) {
108 _cleanup_free_ char *fs = NULL;
Brad Bishopa34c0302019-09-23 22:34:48 -0400109diff --git a/src/basic/env-util.c b/src/basic/env-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600110index a84863ff22..d4f5d57231 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400111--- a/src/basic/env-util.c
112+++ b/src/basic/env-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500113@@ -15,6 +15,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400114 #include "string-util.h"
115 #include "strv.h"
116 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500117+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400118
Andrew Geisslerc723b722021-01-08 16:14:09 -0600119 /* We follow bash for the character set. Different shells have different rules. */
120 #define VALID_BASH_ENV_NAME_CHARS \
Andrew Geissler82c905d2020-04-13 13:39:40 -0500121diff --git a/src/basic/log.c b/src/basic/log.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600122index d4054cf46a..b608863e45 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500123--- a/src/basic/log.c
124+++ b/src/basic/log.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600125@@ -36,6 +36,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500126 #include "terminal-util.h"
127 #include "time-util.h"
128 #include "utf8.h"
129+#include "missing_stdlib.h"
130
131 #define SNDBUF_SIZE (8*1024*1024)
132
Brad Bishopa34c0302019-09-23 22:34:48 -0400133diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
Andrew Geisslerc723b722021-01-08 16:14:09 -0600134index 8c76f93eb2..9068bfb4f0 100644
Brad Bishop19323692019-04-05 15:28:33 -0400135--- a/src/basic/missing_stdlib.h
136+++ b/src/basic/missing_stdlib.h
137@@ -11,3 +11,15 @@
Brad Bishopc68388fc2019-08-26 01:33:31 -0400138 # error "neither secure_getenv nor __secure_getenv are available"
Brad Bishop19323692019-04-05 15:28:33 -0400139 # endif
140 #endif
141+
142+/* string.h */
143+#if ! HAVE_STRNDUPA
144+#define strndupa(s, n) \
145+ ({ \
146+ const char *__old = (s); \
147+ size_t __len = strnlen(__old, (n)); \
148+ char *__new = (char *)alloca(__len + 1); \
149+ __new[__len] = '\0'; \
150+ (char *)memcpy(__new, __old, __len); \
151+ })
152+#endif
Brad Bishopa34c0302019-09-23 22:34:48 -0400153diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600154index f91f8f7a08..fb31596216 100644
Brad Bishop19323692019-04-05 15:28:33 -0400155--- a/src/basic/mkdir.c
156+++ b/src/basic/mkdir.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600157@@ -14,6 +14,7 @@
Brad Bishop19323692019-04-05 15:28:33 -0400158 #include "stat-util.h"
159 #include "stdio-util.h"
160 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500161+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400162
Andrew Geissler635e0e42020-08-21 15:58:33 -0500163 int mkdir_safe_internal(
164 const char *path,
Brad Bishopa34c0302019-09-23 22:34:48 -0400165diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600166index 5d4dafe3a5..70749750d4 100644
Brad Bishop19323692019-04-05 15:28:33 -0400167--- a/src/basic/parse-util.c
168+++ b/src/basic/parse-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600169@@ -22,6 +22,7 @@
Brad Bishop19323692019-04-05 15:28:33 -0400170 #include "stat-util.h"
171 #include "string-util.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -0500172 #include "strv.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500173+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400174
175 int parse_boolean(const char *v) {
176 if (!v)
Andrew Geissler635e0e42020-08-21 15:58:33 -0500177diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600178index 96b82170d0..71342b46af 100644
Andrew Geissler635e0e42020-08-21 15:58:33 -0500179--- a/src/basic/path-lookup.c
180+++ b/src/basic/path-lookup.c
181@@ -15,6 +15,7 @@
182 #include "strv.h"
183 #include "tmpfile-util.h"
184 #include "user-util.h"
185+#include "missing_stdlib.h"
186
187 int xdg_user_runtime_dir(char **ret, const char *suffix) {
188 const char *e;
Brad Bishopa34c0302019-09-23 22:34:48 -0400189diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600190index 0b6fb137bd..e8e8c7b270 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400191--- a/src/basic/proc-cmdline.c
192+++ b/src/basic/proc-cmdline.c
193@@ -15,6 +15,7 @@
194 #include "string-util.h"
195 #include "util.h"
196 #include "virt.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500197+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400198
199 int proc_cmdline(char **ret) {
200 const char *e;
Brad Bishopa34c0302019-09-23 22:34:48 -0400201diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600202index ccab71f7d2..8f9eee8d36 100644
Brad Bishop19323692019-04-05 15:28:33 -0400203--- a/src/basic/procfs-util.c
204+++ b/src/basic/procfs-util.c
205@@ -11,6 +11,7 @@
206 #include "procfs-util.h"
207 #include "stdio-util.h"
208 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500209+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400210
211 int procfs_tasks_get_limit(uint64_t *ret) {
212 _cleanup_free_ char *value = NULL;
Andrew Geissler82c905d2020-04-13 13:39:40 -0500213diff --git a/src/basic/selinux-util.c b/src/basic/selinux-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600214index 4989f4f37c..ca00bf99d8 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500215--- a/src/basic/selinux-util.c
216+++ b/src/basic/selinux-util.c
Andrew Geissler635e0e42020-08-21 15:58:33 -0500217@@ -27,6 +27,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500218 #include "selinux-util.h"
219 #include "stdio-util.h"
220 #include "time-util.h"
221+#include "missing_stdlib.h"
222
223 #if HAVE_SELINUX
224 DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free);
Brad Bishopa34c0302019-09-23 22:34:48 -0400225diff --git a/src/basic/time-util.c b/src/basic/time-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600226index 5318d6378d..23c2f77675 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400227--- a/src/basic/time-util.c
228+++ b/src/basic/time-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600229@@ -27,6 +27,7 @@
Brad Bishop19323692019-04-05 15:28:33 -0400230 #include "string-util.h"
231 #include "strv.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400232 #include "time-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500233+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400234
Brad Bishopc342db32019-05-15 21:57:59 -0400235 static clockid_t map_clock_id(clockid_t c) {
Brad Bishop19323692019-04-05 15:28:33 -0400236
Andrew Geissler82c905d2020-04-13 13:39:40 -0500237diff --git a/src/boot/bless-boot.c b/src/boot/bless-boot.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600238index cd34f88bb9..3a77b6f2ca 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500239--- a/src/boot/bless-boot.c
240+++ b/src/boot/bless-boot.c
241@@ -18,6 +18,7 @@
242 #include "util.h"
243 #include "verbs.h"
244 #include "virt.h"
245+#include "missing_stdlib.h"
246
247 static char **arg_path = NULL;
248
Brad Bishopa34c0302019-09-23 22:34:48 -0400249diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600250index 37c581fb22..e02789d689 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400251--- a/src/core/dbus-cgroup.c
252+++ b/src/core/dbus-cgroup.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600253@@ -16,6 +16,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400254 #include "fileio.h"
255 #include "limits-util.h"
256 #include "path-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500257+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400258
Andrew Geissler82c905d2020-04-13 13:39:40 -0500259 BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve);
Brad Bishopc342db32019-05-15 21:57:59 -0400260
Andrew Geissler82c905d2020-04-13 13:39:40 -0500261diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600262index abe009c395..0451e58d1c 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500263--- a/src/core/dbus-execute.c
264+++ b/src/core/dbus-execute.c
265@@ -41,6 +41,7 @@
266 #include "unit-printf.h"
267 #include "user-util.h"
268 #include "utf8.h"
269+#include "missing_stdlib.h"
270
271 BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput);
272 static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
Brad Bishopa34c0302019-09-23 22:34:48 -0400273diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600274index d6223db305..3654c344ee 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400275--- a/src/core/dbus-util.c
276+++ b/src/core/dbus-util.c
277@@ -7,6 +7,7 @@
278 #include "unit-printf.h"
279 #include "user-util.h"
280 #include "unit.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500281+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400282
283 int bus_property_get_triggered_unit(
284 sd_bus *bus,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500285diff --git a/src/core/execute.c b/src/core/execute.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600286index c992b8d5d3..89632e0582 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500287--- a/src/core/execute.c
288+++ b/src/core/execute.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600289@@ -96,6 +96,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500290 #include "unit.h"
291 #include "user-util.h"
292 #include "utmp-wtmp.h"
293+#include "missing_stdlib.h"
294
295 #define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC)
296 #define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC)
Brad Bishopa34c0302019-09-23 22:34:48 -0400297diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600298index a56f12f47f..6b8729ef67 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400299--- a/src/core/kmod-setup.c
300+++ b/src/core/kmod-setup.c
301@@ -11,6 +11,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400302 #include "macro.h"
303 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500304 #include "missing_type.h"
305+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400306
307 #if HAVE_KMOD
Andrew Geissler82c905d2020-04-13 13:39:40 -0500308 #include "module-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400309diff --git a/src/core/service.c b/src/core/service.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600310index d7bdeb7cca..bfd483b2c0 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400311--- a/src/core/service.c
312+++ b/src/core/service.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500313@@ -41,6 +41,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400314 #include "unit.h"
315 #include "utf8.h"
316 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500317+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400318
319 static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
320 [SERVICE_DEAD] = UNIT_INACTIVE,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500321diff --git a/src/coredump/coredump-vacuum.c b/src/coredump/coredump-vacuum.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600322index 30c67ffe7c..595bc30726 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500323--- a/src/coredump/coredump-vacuum.c
324+++ b/src/coredump/coredump-vacuum.c
325@@ -16,6 +16,7 @@
326 #include "string-util.h"
327 #include "time-util.h"
328 #include "user-util.h"
329+#include "missing_stdlib.h"
330
331 #define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL) /* 1 MiB */
332 #define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */
333diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600334index d2aa1815c2..a851aa203f 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500335--- a/src/journal-remote/journal-remote-main.c
336+++ b/src/journal-remote/journal-remote-main.c
337@@ -22,6 +22,7 @@
338 #include "stat-util.h"
339 #include "string-table.h"
340 #include "strv.h"
341+#include "missing_stdlib.h"
342
343 #define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem"
344 #define CERT_FILE CERTIFICATE_ROOT "/certs/journal-remote.pem"
Brad Bishopa34c0302019-09-23 22:34:48 -0400345diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600346index bcf2e01d5c..5394d1dc01 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400347--- a/src/journal/journalctl.c
348+++ b/src/journal/journalctl.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600349@@ -73,6 +73,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400350 #include "unit-name.h"
351 #include "user-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400352 #include "varlink.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500353+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400354
355 #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
Andrew Geissler82c905d2020-04-13 13:39:40 -0500356 #define PROCESS_INOTIFY_INTERVAL 1024 /* Every 1,024 messages processed */
357diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600358index cb1ab88ca5..7f35759540 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500359--- a/src/journal/sd-journal.c
360+++ b/src/journal/sd-journal.c
361@@ -40,6 +40,7 @@
362 #include "string-util.h"
363 #include "strv.h"
364 #include "syslog-util.h"
365+#include "missing_stdlib.h"
366
367 #define JOURNAL_FILES_MAX 7168
Brad Bishopc342db32019-05-15 21:57:59 -0400368
Brad Bishopa34c0302019-09-23 22:34:48 -0400369diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600370index 86ff5bdfa2..3fd053a358 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400371--- a/src/libsystemd/sd-bus/bus-message.c
372+++ b/src/libsystemd/sd-bus/bus-message.c
373@@ -21,6 +21,7 @@
374 #include "strv.h"
375 #include "time-util.h"
376 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500377+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400378
379 static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
380
Brad Bishopa34c0302019-09-23 22:34:48 -0400381diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600382index 275c4318a1..5ffee59d17 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400383--- a/src/libsystemd/sd-bus/bus-objects.c
384+++ b/src/libsystemd/sd-bus/bus-objects.c
385@@ -13,6 +13,7 @@
386 #include "set.h"
387 #include "string-util.h"
388 #include "strv.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500389+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400390
391 static int node_vtable_get_userdata(
392 sd_bus *bus,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500393diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600394index 4881fd0d32..c865f1133b 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500395--- a/src/libsystemd/sd-bus/bus-socket.c
396+++ b/src/libsystemd/sd-bus/bus-socket.c
397@@ -28,6 +28,7 @@
398 #include "string-util.h"
399 #include "user-util.h"
400 #include "utf8.h"
401+#include "missing_stdlib.h"
402
403 #define SNDBUF_SIZE (8*1024*1024)
404
405diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600406index b8d4dc8d95..a8bac2665d 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500407--- a/src/libsystemd/sd-bus/sd-bus.c
408+++ b/src/libsystemd/sd-bus/sd-bus.c
409@@ -41,6 +41,7 @@
410 #include "process-util.h"
411 #include "string-util.h"
412 #include "strv.h"
413+#include "missing_stdlib.h"
414
415 #define log_debug_bus_message(m) \
416 do { \
Brad Bishopa34c0302019-09-23 22:34:48 -0400417diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c b/src/libsystemd/sd-bus/test-bus-benchmark.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600418index 8c6711797a..fac178823a 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400419--- a/src/libsystemd/sd-bus/test-bus-benchmark.c
420+++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
421@@ -14,6 +14,7 @@
422 #include "missing_resource.h"
423 #include "time-util.h"
424 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500425+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400426
427 #define MAX_SIZE (2*1024*1024)
428
Brad Bishopa34c0302019-09-23 22:34:48 -0400429diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600430index cb8153f4fe..d52a56019d 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400431--- a/src/locale/keymap-util.c
432+++ b/src/locale/keymap-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500433@@ -21,6 +21,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400434 #include "string-util.h"
435 #include "strv.h"
436 #include "tmpfile-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500437+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400438
439 static bool startswith_comma(const char *s, const char *prefix) {
440 s = startswith(s, prefix);
Brad Bishopa34c0302019-09-23 22:34:48 -0400441diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600442index 8e7a94db55..b5c368c6d1 100644
Brad Bishopa34c0302019-09-23 22:34:48 -0400443--- a/src/login/pam_systemd.c
444+++ b/src/login/pam_systemd.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500445@@ -31,6 +31,7 @@
446 #include "locale-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400447 #include "login-util.h"
448 #include "macro.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500449+#include "missing_stdlib.h"
450 #include "pam-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400451 #include "parse-util.h"
452 #include "path-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400453diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600454index 2fa21a067a..2e9995aa62 100644
Brad Bishopa34c0302019-09-23 22:34:48 -0400455--- a/src/network/generator/network-generator.c
456+++ b/src/network/generator/network-generator.c
457@@ -13,6 +13,7 @@
458 #include "string-table.h"
459 #include "string-util.h"
460 #include "strv.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500461+#include "missing_stdlib.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400462
463 /*
464 # .network
465diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600466index 92bb5120ab..eeca905c75 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400467--- a/src/nspawn/nspawn-settings.c
468+++ b/src/nspawn/nspawn-settings.c
469@@ -16,6 +16,7 @@
470 #include "strv.h"
Brad Bishop19323692019-04-05 15:28:33 -0400471 #include "user-util.h"
472 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500473+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400474
Brad Bishopc342db32019-05-15 21:57:59 -0400475 Settings *settings_new(void) {
476 Settings *s;
Andrew Geissler82c905d2020-04-13 13:39:40 -0500477diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600478index 53f0492116..c71941fdd7 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500479--- a/src/nss-mymachines/nss-mymachines.c
480+++ b/src/nss-mymachines/nss-mymachines.c
481@@ -19,6 +19,7 @@
Andrew Geissler635e0e42020-08-21 15:58:33 -0500482 #include "nss-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500483 #include "signal-util.h"
484 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500485+#include "missing_stdlib.h"
486
487 NSS_GETHOSTBYNAME_PROTOTYPES(mymachines);
488 NSS_GETPW_PROTOTYPES(mymachines);
489diff --git a/src/portable/portable.c b/src/portable/portable.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600490index ed7eac0291..78986977f8 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500491--- a/src/portable/portable.c
492+++ b/src/portable/portable.c
493@@ -31,6 +31,7 @@
494 #include "strv.h"
495 #include "tmpfile-util.h"
496 #include "user-util.h"
497+#include "missing_stdlib.h"
498
499 static const char profile_dirs[] = CONF_PATHS_NULSTR("systemd/portable/profile");
500
501diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600502index b479335769..212d0bed20 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500503--- a/src/resolve/resolvectl.c
504+++ b/src/resolve/resolvectl.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600505@@ -37,6 +37,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500506 #include "terminal-util.h"
Andrew Geisslerc723b722021-01-08 16:14:09 -0600507 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500508 #include "verbs.h"
509+#include "missing_stdlib.h"
510
511 static int arg_family = AF_UNSPEC;
512 static int arg_ifindex = 0;
Andrew Geissler635e0e42020-08-21 15:58:33 -0500513diff --git a/src/shared/bus-get-properties.c b/src/shared/bus-get-properties.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600514index 32f68d5e6a..bda1e1ef4f 100644
Andrew Geissler635e0e42020-08-21 15:58:33 -0500515--- a/src/shared/bus-get-properties.c
516+++ b/src/shared/bus-get-properties.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600517@@ -4,6 +4,7 @@
Andrew Geissler635e0e42020-08-21 15:58:33 -0500518 #include "rlimit-util.h"
Andrew Geisslerc723b722021-01-08 16:14:09 -0600519 #include "stdio-util.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -0500520 #include "string-util.h"
521+#include "missing_stdlib.h"
522
523 int bus_property_get_bool(
524 sd_bus *bus,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500525diff --git a/src/shared/bus-unit-procs.c b/src/shared/bus-unit-procs.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600526index 3e97be9671..2b8ca838f7 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500527--- a/src/shared/bus-unit-procs.c
528+++ b/src/shared/bus-unit-procs.c
529@@ -10,6 +10,7 @@
530 #include "sort-util.h"
531 #include "string-util.h"
532 #include "terminal-util.h"
533+#include "missing_stdlib.h"
534
535 struct CGroupInfo {
536 char *cgroup_path;
537diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600538index 2bab2299fb..62afdc7973 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500539--- a/src/shared/bus-unit-util.c
540+++ b/src/shared/bus-unit-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600541@@ -44,6 +44,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500542 #include "unit-def.h"
543 #include "user-util.h"
544 #include "utf8.h"
545+#include "missing_stdlib.h"
546
547 int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
548 assert(message);
549diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600550index fbda218b3b..aae0be75c6 100644
Andrew Geissler82c905d2020-04-13 13:39:40 -0500551--- a/src/shared/bus-util.c
552+++ b/src/shared/bus-util.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600553@@ -21,6 +21,7 @@
554 #include "path-util.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -0500555 #include "socket-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500556 #include "stdio-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500557+#include "missing_stdlib.h"
558
559 static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
560 sd_event *e = userdata;
Brad Bishopa34c0302019-09-23 22:34:48 -0400561diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600562index 8bd1e3a6ac..f8d6eab9bd 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400563--- a/src/shared/dns-domain.c
564+++ b/src/shared/dns-domain.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600565@@ -17,6 +17,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400566 #include "string-util.h"
567 #include "strv.h"
568 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500569+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400570
571 int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
572 const char *n;
Brad Bishopa34c0302019-09-23 22:34:48 -0400573diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600574index e95b638f4d..a1bf15baa8 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400575--- a/src/shared/journal-importer.c
576+++ b/src/shared/journal-importer.c
Brad Bishopa34c0302019-09-23 22:34:48 -0400577@@ -14,6 +14,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400578 #include "parse-util.h"
579 #include "string-util.h"
580 #include "unaligned.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500581+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400582
583 enum {
584 IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */
Brad Bishopa34c0302019-09-23 22:34:48 -0400585diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600586index bf574d32a5..a09c79d2fb 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400587--- a/src/shared/logs-show.c
588+++ b/src/shared/logs-show.c
Andrew Geissler635e0e42020-08-21 15:58:33 -0500589@@ -41,6 +41,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400590 #include "utf8.h"
591 #include "util.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -0500592 #include "web-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500593+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400594
595 /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
596 #define PRINT_LINE_THRESHOLD 3
Brad Bishopa34c0302019-09-23 22:34:48 -0400597diff --git a/src/shared/pager.c b/src/shared/pager.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600598index f689d9f28f..aae3957c2f 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400599--- a/src/shared/pager.c
600+++ b/src/shared/pager.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600601@@ -26,6 +26,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400602 #include "strv.h"
603 #include "terminal-util.h"
604 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500605+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400606
607 static pid_t pager_pid = 0;
608
Brad Bishopa34c0302019-09-23 22:34:48 -0400609diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600610index 5d5bf7f21d..f1002ffa6c 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400611--- a/src/shared/uid-range.c
612+++ b/src/shared/uid-range.c
613@@ -9,6 +9,7 @@
614 #include "sort-util.h"
615 #include "uid-range.h"
616 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500617+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400618
Brad Bishop19323692019-04-05 15:28:33 -0400619 static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
620 assert(range);
Brad Bishopa34c0302019-09-23 22:34:48 -0400621diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600622index 4391d9f1f5..9b73cd0aeb 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400623--- a/src/socket-proxy/socket-proxyd.c
624+++ b/src/socket-proxy/socket-proxyd.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500625@@ -26,6 +26,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400626 #include "socket-util.h"
627 #include "string-util.h"
628 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500629+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400630
631 #define BUFFER_SIZE (256 * 1024)
632
Brad Bishopa34c0302019-09-23 22:34:48 -0400633diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600634index f0f9679769..128fc164da 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400635--- a/src/test/test-hexdecoct.c
636+++ b/src/test/test-hexdecoct.c
637@@ -6,6 +6,7 @@
638 #include "hexdecoct.h"
639 #include "macro.h"
640 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500641+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400642
643 static void test_hexchar(void) {
644 assert_se(hexchar(0xa) == 'a');
Brad Bishopa34c0302019-09-23 22:34:48 -0400645diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600646index 0da59e2c75..66da3741ee 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400647--- a/src/udev/udev-builtin-path_id.c
648+++ b/src/udev/udev-builtin-path_id.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500649@@ -22,6 +22,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400650 #include "strv.h"
651 #include "sysexits.h"
652 #include "udev-builtin.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500653+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400654
655 _printf_(2,3)
656 static void path_prepend(char **path, const char *fmt, ...) {
Brad Bishopa34c0302019-09-23 22:34:48 -0400657diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600658index 5159d19a38..0ed5b65844 100644
Brad Bishopa34c0302019-09-23 22:34:48 -0400659--- a/src/udev/udev-event.c
660+++ b/src/udev/udev-event.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500661@@ -34,6 +34,7 @@
Brad Bishopa34c0302019-09-23 22:34:48 -0400662 #include "udev-util.h"
663 #include "udev-watch.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400664 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500665+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400666
Brad Bishopa34c0302019-09-23 22:34:48 -0400667 typedef struct Spawn {
668 sd_device *device;
669diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
Andrew Geisslerc723b722021-01-08 16:14:09 -0600670index ef6a0c112c..422fc19127 100644
Brad Bishopa34c0302019-09-23 22:34:48 -0400671--- a/src/udev/udev-rules.c
672+++ b/src/udev/udev-rules.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500673@@ -30,6 +30,7 @@
Brad Bishopa34c0302019-09-23 22:34:48 -0400674 #include "udev-rules.h"
675 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500676 #include "virt.h"
677+#include "missing_stdlib.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400678
679 #define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
680
Andrew Geisslerc723b722021-01-08 16:14:09 -0600681--
6822.27.0
683