blob: ca4f0d5d623f2f4074d981f11c4ce06917e8ef80 [file] [log] [blame]
Andrew Geissler82c905d2020-04-13 13:39:40 -05001From 85dcaad8f38521ec3dc580794072b601900eed84 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 Geissler82c905d2020-04-13 13:39:40 -05004Subject: [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]
18
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 +
28 src/basic/proc-cmdline.c | 1 +
29 src/basic/procfs-util.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050030 src/basic/selinux-util.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040031 src/basic/time-util.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050032 src/boot/bless-boot.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040033 src/core/dbus-cgroup.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050034 src/core/dbus-execute.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040035 src/core/dbus-util.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050036 src/core/execute.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040037 src/core/kmod-setup.c | 1 +
38 src/core/service.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050039 src/coredump/coredump-vacuum.c | 1 +
40 src/journal-remote/journal-remote-main.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040041 src/journal/journalctl.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050042 src/journal/sd-journal.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040043 src/libsystemd/sd-bus/bus-message.c | 1 +
44 src/libsystemd/sd-bus/bus-objects.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050045 src/libsystemd/sd-bus/bus-socket.c | 1 +
46 src/libsystemd/sd-bus/sd-bus.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040047 src/libsystemd/sd-bus/test-bus-benchmark.c | 1 +
48 src/locale/keymap-util.c | 1 +
Brad Bishopa34c0302019-09-23 22:34:48 -040049 src/login/pam_systemd.c | 1 +
50 src/network/generator/network-generator.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040051 src/nspawn/nspawn-settings.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050052 src/nss-mymachines/nss-mymachines.c | 1 +
53 src/portable/portable.c | 1 +
54 src/resolve/resolvectl.c | 1 +
55 src/shared/bus-unit-procs.c | 1 +
56 src/shared/bus-unit-util.c | 1 +
57 src/shared/bus-util.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040058 src/shared/dns-domain.c | 1 +
59 src/shared/journal-importer.c | 1 +
60 src/shared/logs-show.c | 1 +
61 src/shared/pager.c | 1 +
62 src/shared/path-lookup.c | 1 +
63 src/shared/uid-range.c | 1 +
64 src/socket-proxy/socket-proxyd.c | 1 +
65 src/test/test-hexdecoct.c | 1 +
66 src/udev/udev-builtin-path_id.c | 1 +
Brad Bishopa34c0302019-09-23 22:34:48 -040067 src/udev/udev-event.c | 1 +
Brad Bishopc342db32019-05-15 21:57:59 -040068 src/udev/udev-rules.c | 1 +
Andrew Geissler82c905d2020-04-13 13:39:40 -050069 49 files changed, 60 insertions(+)
Brad Bishop19323692019-04-05 15:28:33 -040070
Brad Bishopa34c0302019-09-23 22:34:48 -040071diff --git a/meson.build b/meson.build
Andrew Geissler82c905d2020-04-13 13:39:40 -050072index a25996803d64..72b305b5ab58 100644
Brad Bishop19323692019-04-05 15:28:33 -040073--- a/meson.build
74+++ b/meson.build
Andrew Geissler82c905d2020-04-13 13:39:40 -050075@@ -529,6 +529,7 @@ foreach ident : [
76 #include <unistd.h>
77 #include <signal.h>
78 #include <sys/wait.h>'''],
Brad Bishop19323692019-04-05 15:28:33 -040079+ ['strndupa' , '''#include <string.h>'''],
80 ]
81
82 have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
Brad Bishopa34c0302019-09-23 22:34:48 -040083diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
Andrew Geissler82c905d2020-04-13 13:39:40 -050084index 048441429025..01d74ea0ed4e 100644
Brad Bishopc342db32019-05-15 21:57:59 -040085--- a/src/backlight/backlight.c
86+++ b/src/backlight/backlight.c
87@@ -17,6 +17,7 @@
88 #include "string-util.h"
89 #include "strv.h"
90 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -050091+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -040092
93 static int find_pci_or_platform_parent(sd_device *device, sd_device **ret) {
94 const char *subsystem, *sysname, *value;
Andrew Geissler82c905d2020-04-13 13:39:40 -050095diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
96index 54fc6ecf8b20..a5141f4cbedd 100644
97--- a/src/basic/cgroup-util.c
98+++ b/src/basic/cgroup-util.c
99@@ -37,6 +37,7 @@
100 #include "strv.h"
101 #include "unit-name.h"
102 #include "user-util.h"
103+#include "missing_stdlib.h"
104
105 static int cg_enumerate_items(const char *controller, const char *path, FILE **_f, const char *item) {
106 _cleanup_free_ char *fs = NULL;
Brad Bishopa34c0302019-09-23 22:34:48 -0400107diff --git a/src/basic/env-util.c b/src/basic/env-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500108index b8dc98915f81..5049b37594bc 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400109--- a/src/basic/env-util.c
110+++ b/src/basic/env-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500111@@ -15,6 +15,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400112 #include "string-util.h"
113 #include "strv.h"
114 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500115+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400116
117 #define VALID_CHARS_ENV_NAME \
118 DIGITS LETTERS \
Andrew Geissler82c905d2020-04-13 13:39:40 -0500119diff --git a/src/basic/log.c b/src/basic/log.c
120index 17557e1844b2..6cec4d324aab 100644
121--- a/src/basic/log.c
122+++ b/src/basic/log.c
123@@ -34,6 +34,7 @@
124 #include "terminal-util.h"
125 #include "time-util.h"
126 #include "utf8.h"
127+#include "missing_stdlib.h"
128
129 #define SNDBUF_SIZE (8*1024*1024)
130
Brad Bishopa34c0302019-09-23 22:34:48 -0400131diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
Andrew Geissler82c905d2020-04-13 13:39:40 -0500132index 188a8d44066a..1e16ec287aad 100644
Brad Bishop19323692019-04-05 15:28:33 -0400133--- a/src/basic/missing_stdlib.h
134+++ b/src/basic/missing_stdlib.h
135@@ -11,3 +11,15 @@
Brad Bishopc68388fc2019-08-26 01:33:31 -0400136 # error "neither secure_getenv nor __secure_getenv are available"
Brad Bishop19323692019-04-05 15:28:33 -0400137 # endif
138 #endif
139+
140+/* string.h */
141+#if ! HAVE_STRNDUPA
142+#define strndupa(s, n) \
143+ ({ \
144+ const char *__old = (s); \
145+ size_t __len = strnlen(__old, (n)); \
146+ char *__new = (char *)alloca(__len + 1); \
147+ __new[__len] = '\0'; \
148+ (char *)memcpy(__new, __old, __len); \
149+ })
150+#endif
Brad Bishopa34c0302019-09-23 22:34:48 -0400151diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500152index fa682d4c438e..37902551490a 100644
Brad Bishop19323692019-04-05 15:28:33 -0400153--- a/src/basic/mkdir.c
154+++ b/src/basic/mkdir.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500155@@ -13,6 +13,7 @@
Brad Bishop19323692019-04-05 15:28:33 -0400156 #include "stat-util.h"
157 #include "stdio-util.h"
158 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500159+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400160
161 int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir) {
162 struct stat st;
Brad Bishopa34c0302019-09-23 22:34:48 -0400163diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500164index e0094b0f370a..00da6518124b 100644
Brad Bishop19323692019-04-05 15:28:33 -0400165--- a/src/basic/parse-util.c
166+++ b/src/basic/parse-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500167@@ -18,6 +18,7 @@
Brad Bishop19323692019-04-05 15:28:33 -0400168 #include "process-util.h"
169 #include "stat-util.h"
170 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500171+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400172
173 int parse_boolean(const char *v) {
174 if (!v)
Brad Bishopa34c0302019-09-23 22:34:48 -0400175diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500176index 1af58717c686..c1020f4611d4 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400177--- a/src/basic/proc-cmdline.c
178+++ b/src/basic/proc-cmdline.c
179@@ -15,6 +15,7 @@
180 #include "string-util.h"
181 #include "util.h"
182 #include "virt.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500183+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400184
185 int proc_cmdline(char **ret) {
186 const char *e;
Brad Bishopa34c0302019-09-23 22:34:48 -0400187diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500188index 7aaf95bfced2..da7e836f143e 100644
Brad Bishop19323692019-04-05 15:28:33 -0400189--- a/src/basic/procfs-util.c
190+++ b/src/basic/procfs-util.c
191@@ -11,6 +11,7 @@
192 #include "procfs-util.h"
193 #include "stdio-util.h"
194 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500195+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400196
197 int procfs_tasks_get_limit(uint64_t *ret) {
198 _cleanup_free_ char *value = NULL;
Andrew Geissler82c905d2020-04-13 13:39:40 -0500199diff --git a/src/basic/selinux-util.c b/src/basic/selinux-util.c
200index 1095cb426cce..806ef4bd97a9 100644
201--- a/src/basic/selinux-util.c
202+++ b/src/basic/selinux-util.c
203@@ -26,6 +26,7 @@
204 #include "selinux-util.h"
205 #include "stdio-util.h"
206 #include "time-util.h"
207+#include "missing_stdlib.h"
208
209 #if HAVE_SELINUX
210 DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free);
Brad Bishopa34c0302019-09-23 22:34:48 -0400211diff --git a/src/basic/time-util.c b/src/basic/time-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500212index 105584e2e72f..eb0bed47dac3 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400213--- a/src/basic/time-util.c
214+++ b/src/basic/time-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500215@@ -26,6 +26,7 @@
Brad Bishop19323692019-04-05 15:28:33 -0400216 #include "string-util.h"
217 #include "strv.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400218 #include "time-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500219+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400220
Brad Bishopc342db32019-05-15 21:57:59 -0400221 static clockid_t map_clock_id(clockid_t c) {
Brad Bishop19323692019-04-05 15:28:33 -0400222
Andrew Geissler82c905d2020-04-13 13:39:40 -0500223diff --git a/src/boot/bless-boot.c b/src/boot/bless-boot.c
224index b96e1f927fff..cba979baca3e 100644
225--- a/src/boot/bless-boot.c
226+++ b/src/boot/bless-boot.c
227@@ -18,6 +18,7 @@
228 #include "util.h"
229 #include "verbs.h"
230 #include "virt.h"
231+#include "missing_stdlib.h"
232
233 static char **arg_path = NULL;
234
Brad Bishopa34c0302019-09-23 22:34:48 -0400235diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500236index 27dc9e43c3e2..b1a83023600b 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400237--- a/src/core/dbus-cgroup.c
238+++ b/src/core/dbus-cgroup.c
239@@ -15,6 +15,7 @@
240 #include "fileio.h"
241 #include "limits-util.h"
242 #include "path-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500243+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400244
Andrew Geissler82c905d2020-04-13 13:39:40 -0500245 BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve);
Brad Bishopc342db32019-05-15 21:57:59 -0400246
Andrew Geissler82c905d2020-04-13 13:39:40 -0500247diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
248index d8ba3e5d9241..729e13fda64c 100644
249--- a/src/core/dbus-execute.c
250+++ b/src/core/dbus-execute.c
251@@ -41,6 +41,7 @@
252 #include "unit-printf.h"
253 #include "user-util.h"
254 #include "utf8.h"
255+#include "missing_stdlib.h"
256
257 BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput);
258 static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
Brad Bishopa34c0302019-09-23 22:34:48 -0400259diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500260index 7862beaacb6d..3b1ea53a5f0d 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400261--- a/src/core/dbus-util.c
262+++ b/src/core/dbus-util.c
263@@ -7,6 +7,7 @@
264 #include "unit-printf.h"
265 #include "user-util.h"
266 #include "unit.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500267+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400268
269 int bus_property_get_triggered_unit(
270 sd_bus *bus,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500271diff --git a/src/core/execute.c b/src/core/execute.c
272index 89dbf6fbd2c1..9762dc57443c 100644
273--- a/src/core/execute.c
274+++ b/src/core/execute.c
275@@ -88,6 +88,7 @@
276 #include "unit.h"
277 #include "user-util.h"
278 #include "utmp-wtmp.h"
279+#include "missing_stdlib.h"
280
281 #define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC)
282 #define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC)
Brad Bishopa34c0302019-09-23 22:34:48 -0400283diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500284index 09ccd613e32c..f4e64fa283e9 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400285--- a/src/core/kmod-setup.c
286+++ b/src/core/kmod-setup.c
287@@ -11,6 +11,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400288 #include "macro.h"
289 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500290 #include "missing_type.h"
291+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400292
293 #if HAVE_KMOD
Andrew Geissler82c905d2020-04-13 13:39:40 -0500294 #include "module-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400295diff --git a/src/core/service.c b/src/core/service.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500296index 17f27a4abce3..e5dcc532d0ce 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400297--- a/src/core/service.c
298+++ b/src/core/service.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500299@@ -41,6 +41,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400300 #include "unit.h"
301 #include "utf8.h"
302 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500303+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400304
305 static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
306 [SERVICE_DEAD] = UNIT_INACTIVE,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500307diff --git a/src/coredump/coredump-vacuum.c b/src/coredump/coredump-vacuum.c
308index 35885dfb47c4..bb9f0660a6a0 100644
309--- a/src/coredump/coredump-vacuum.c
310+++ b/src/coredump/coredump-vacuum.c
311@@ -16,6 +16,7 @@
312 #include "string-util.h"
313 #include "time-util.h"
314 #include "user-util.h"
315+#include "missing_stdlib.h"
316
317 #define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL) /* 1 MiB */
318 #define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */
319diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c
320index 88e42d3a984b..0f08376e5399 100644
321--- a/src/journal-remote/journal-remote-main.c
322+++ b/src/journal-remote/journal-remote-main.c
323@@ -22,6 +22,7 @@
324 #include "stat-util.h"
325 #include "string-table.h"
326 #include "strv.h"
327+#include "missing_stdlib.h"
328
329 #define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem"
330 #define CERT_FILE CERTIFICATE_ROOT "/certs/journal-remote.pem"
Brad Bishopa34c0302019-09-23 22:34:48 -0400331diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500332index e5feec83bce6..c3aec1e219d7 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400333--- a/src/journal/journalctl.c
334+++ b/src/journal/journalctl.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500335@@ -69,6 +69,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400336 #include "unit-name.h"
337 #include "user-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400338 #include "varlink.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500339+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400340
341 #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
Andrew Geissler82c905d2020-04-13 13:39:40 -0500342 #define PROCESS_INOTIFY_INTERVAL 1024 /* Every 1,024 messages processed */
343diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c
344index 3fa98dfda237..e655d77e714a 100644
345--- a/src/journal/sd-journal.c
346+++ b/src/journal/sd-journal.c
347@@ -40,6 +40,7 @@
348 #include "string-util.h"
349 #include "strv.h"
350 #include "syslog-util.h"
351+#include "missing_stdlib.h"
352
353 #define JOURNAL_FILES_MAX 7168
Brad Bishopc342db32019-05-15 21:57:59 -0400354
Brad Bishopa34c0302019-09-23 22:34:48 -0400355diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500356index 73127dfe0253..cc8635dea591 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400357--- a/src/libsystemd/sd-bus/bus-message.c
358+++ b/src/libsystemd/sd-bus/bus-message.c
359@@ -21,6 +21,7 @@
360 #include "strv.h"
361 #include "time-util.h"
362 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500363+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400364
365 static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
366
Brad Bishopa34c0302019-09-23 22:34:48 -0400367diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500368index 6d140348ec4c..9126b8801bc5 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400369--- a/src/libsystemd/sd-bus/bus-objects.c
370+++ b/src/libsystemd/sd-bus/bus-objects.c
371@@ -13,6 +13,7 @@
372 #include "set.h"
373 #include "string-util.h"
374 #include "strv.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500375+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400376
377 static int node_vtable_get_userdata(
378 sd_bus *bus,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500379diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c
380index 18d30d010a20..be2ab703f8ed 100644
381--- a/src/libsystemd/sd-bus/bus-socket.c
382+++ b/src/libsystemd/sd-bus/bus-socket.c
383@@ -28,6 +28,7 @@
384 #include "string-util.h"
385 #include "user-util.h"
386 #include "utf8.h"
387+#include "missing_stdlib.h"
388
389 #define SNDBUF_SIZE (8*1024*1024)
390
391diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
392index 7ad03680f48d..b9d2181e4910 100644
393--- a/src/libsystemd/sd-bus/sd-bus.c
394+++ b/src/libsystemd/sd-bus/sd-bus.c
395@@ -41,6 +41,7 @@
396 #include "process-util.h"
397 #include "string-util.h"
398 #include "strv.h"
399+#include "missing_stdlib.h"
400
401 #define log_debug_bus_message(m) \
402 do { \
Brad Bishopa34c0302019-09-23 22:34:48 -0400403diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c b/src/libsystemd/sd-bus/test-bus-benchmark.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500404index 8de0a859ee94..58044b6ba908 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400405--- a/src/libsystemd/sd-bus/test-bus-benchmark.c
406+++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
407@@ -14,6 +14,7 @@
408 #include "missing_resource.h"
409 #include "time-util.h"
410 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500411+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400412
413 #define MAX_SIZE (2*1024*1024)
414
Brad Bishopa34c0302019-09-23 22:34:48 -0400415diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500416index 30669a9359e5..6544b3722099 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400417--- a/src/locale/keymap-util.c
418+++ b/src/locale/keymap-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500419@@ -21,6 +21,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400420 #include "string-util.h"
421 #include "strv.h"
422 #include "tmpfile-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500423+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400424
425 static bool startswith_comma(const char *s, const char *prefix) {
426 s = startswith(s, prefix);
Brad Bishopa34c0302019-09-23 22:34:48 -0400427diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500428index 84bea21ab7be..49720c7f742e 100644
Brad Bishopa34c0302019-09-23 22:34:48 -0400429--- a/src/login/pam_systemd.c
430+++ b/src/login/pam_systemd.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500431@@ -31,6 +31,7 @@
432 #include "locale-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400433 #include "login-util.h"
434 #include "macro.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500435+#include "missing_stdlib.h"
436 #include "pam-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400437 #include "parse-util.h"
438 #include "path-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400439diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500440index bed1e42697c4..e4847c2beea2 100644
Brad Bishopa34c0302019-09-23 22:34:48 -0400441--- a/src/network/generator/network-generator.c
442+++ b/src/network/generator/network-generator.c
443@@ -13,6 +13,7 @@
444 #include "string-table.h"
445 #include "string-util.h"
446 #include "strv.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500447+#include "missing_stdlib.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400448
449 /*
450 # .network
451diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500452index 5fb5b49bbcc3..785ccc2da307 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400453--- a/src/nspawn/nspawn-settings.c
454+++ b/src/nspawn/nspawn-settings.c
455@@ -16,6 +16,7 @@
456 #include "strv.h"
Brad Bishop19323692019-04-05 15:28:33 -0400457 #include "user-util.h"
458 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500459+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400460
Brad Bishopc342db32019-05-15 21:57:59 -0400461 Settings *settings_new(void) {
462 Settings *s;
Andrew Geissler82c905d2020-04-13 13:39:40 -0500463diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c
464index 364356da5622..47d4ea44e40f 100644
465--- a/src/nss-mymachines/nss-mymachines.c
466+++ b/src/nss-mymachines/nss-mymachines.c
467@@ -19,6 +19,7 @@
468 #include "signal-util.h"
469 #include "string-util.h"
470 #include "user-util.h"
471+#include "missing_stdlib.h"
472
473 NSS_GETHOSTBYNAME_PROTOTYPES(mymachines);
474 NSS_GETPW_PROTOTYPES(mymachines);
475diff --git a/src/portable/portable.c b/src/portable/portable.c
476index e18826ab2685..d9f4b81d8937 100644
477--- a/src/portable/portable.c
478+++ b/src/portable/portable.c
479@@ -31,6 +31,7 @@
480 #include "strv.h"
481 #include "tmpfile-util.h"
482 #include "user-util.h"
483+#include "missing_stdlib.h"
484
485 static const char profile_dirs[] = CONF_PATHS_NULSTR("systemd/portable/profile");
486
487diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c
488index f20e8c44b8bc..9f6c4e8f49a7 100644
489--- a/src/resolve/resolvectl.c
490+++ b/src/resolve/resolvectl.c
491@@ -33,6 +33,7 @@
492 #include "strv.h"
493 #include "terminal-util.h"
494 #include "verbs.h"
495+#include "missing_stdlib.h"
496
497 static int arg_family = AF_UNSPEC;
498 static int arg_ifindex = 0;
499diff --git a/src/shared/bus-unit-procs.c b/src/shared/bus-unit-procs.c
500index b21fe393265f..af2640005c1d 100644
501--- a/src/shared/bus-unit-procs.c
502+++ b/src/shared/bus-unit-procs.c
503@@ -10,6 +10,7 @@
504 #include "sort-util.h"
505 #include "string-util.h"
506 #include "terminal-util.h"
507+#include "missing_stdlib.h"
508
509 struct CGroupInfo {
510 char *cgroup_path;
511diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c
512index 28d85944a8a7..4743a84a417e 100644
513--- a/src/shared/bus-unit-util.c
514+++ b/src/shared/bus-unit-util.c
515@@ -34,6 +34,7 @@
516 #include "unit-def.h"
517 #include "user-util.h"
518 #include "utf8.h"
519+#include "missing_stdlib.h"
520
521 int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
522 assert(message);
523diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
524index 8e6a6e2ce2de..0cbf4b1997df 100644
525--- a/src/shared/bus-util.c
526+++ b/src/shared/bus-util.c
527@@ -30,6 +30,7 @@
528 #include "stdio-util.h"
529 #include "strv.h"
530 #include "user-util.h"
531+#include "missing_stdlib.h"
532
533 static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
534 sd_event *e = userdata;
Brad Bishopa34c0302019-09-23 22:34:48 -0400535diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500536index b812665315f6..8e68f7f8fc6c 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400537--- a/src/shared/dns-domain.c
538+++ b/src/shared/dns-domain.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500539@@ -23,6 +23,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400540 #include "string-util.h"
541 #include "strv.h"
542 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500543+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400544
545 int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
546 const char *n;
Brad Bishopa34c0302019-09-23 22:34:48 -0400547diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500548index 7c4fc7021dec..3fbaf5a63969 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400549--- a/src/shared/journal-importer.c
550+++ b/src/shared/journal-importer.c
Brad Bishopa34c0302019-09-23 22:34:48 -0400551@@ -14,6 +14,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400552 #include "parse-util.h"
553 #include "string-util.h"
554 #include "unaligned.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500555+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400556
557 enum {
558 IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */
Brad Bishopa34c0302019-09-23 22:34:48 -0400559diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500560index 2bfd0b60c26b..6a1bb3a0760f 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400561--- a/src/shared/logs-show.c
562+++ b/src/shared/logs-show.c
Brad Bishopa34c0302019-09-23 22:34:48 -0400563@@ -39,6 +39,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400564 #include "time-util.h"
565 #include "utf8.h"
566 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500567+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400568
569 /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
570 #define PRINT_LINE_THRESHOLD 3
Brad Bishopa34c0302019-09-23 22:34:48 -0400571diff --git a/src/shared/pager.c b/src/shared/pager.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500572index 1fe9db179176..67954b5cab93 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400573--- a/src/shared/pager.c
574+++ b/src/shared/pager.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500575@@ -23,6 +23,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400576 #include "strv.h"
577 #include "terminal-util.h"
578 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500579+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400580
581 static pid_t pager_pid = 0;
582
Brad Bishopa34c0302019-09-23 22:34:48 -0400583diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500584index 5b1620974536..0e7cd1c2af12 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400585--- a/src/shared/path-lookup.c
586+++ b/src/shared/path-lookup.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500587@@ -19,6 +19,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400588 #include "tmpfile-util.h"
589 #include "user-util.h"
590 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500591+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400592
593 int xdg_user_runtime_dir(char **ret, const char *suffix) {
594 const char *e;
Brad Bishopa34c0302019-09-23 22:34:48 -0400595diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500596index 7cb7d8a477e9..8e7d7f9e7ca6 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400597--- a/src/shared/uid-range.c
598+++ b/src/shared/uid-range.c
599@@ -9,6 +9,7 @@
600 #include "sort-util.h"
601 #include "uid-range.h"
602 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500603+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400604
Brad Bishop19323692019-04-05 15:28:33 -0400605 static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
606 assert(range);
Brad Bishopa34c0302019-09-23 22:34:48 -0400607diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500608index 2ee6fc2f0a6a..4a9934f9c14d 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400609--- a/src/socket-proxy/socket-proxyd.c
610+++ b/src/socket-proxy/socket-proxyd.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500611@@ -26,6 +26,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400612 #include "socket-util.h"
613 #include "string-util.h"
614 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500615+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400616
617 #define BUFFER_SIZE (256 * 1024)
618
Brad Bishopa34c0302019-09-23 22:34:48 -0400619diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500620index 52217429b154..70708dedf318 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400621--- a/src/test/test-hexdecoct.c
622+++ b/src/test/test-hexdecoct.c
623@@ -6,6 +6,7 @@
624 #include "hexdecoct.h"
625 #include "macro.h"
626 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500627+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400628
629 static void test_hexchar(void) {
630 assert_se(hexchar(0xa) == 'a');
Brad Bishopa34c0302019-09-23 22:34:48 -0400631diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500632index ca38f5608791..9d8cf4d2807b 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400633--- a/src/udev/udev-builtin-path_id.c
634+++ b/src/udev/udev-builtin-path_id.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500635@@ -22,6 +22,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400636 #include "strv.h"
637 #include "sysexits.h"
638 #include "udev-builtin.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500639+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400640
641 _printf_(2,3)
642 static void path_prepend(char **path, const char *fmt, ...) {
Brad Bishopa34c0302019-09-23 22:34:48 -0400643diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500644index eb51139e519c..977cc16e9d7c 100644
Brad Bishopa34c0302019-09-23 22:34:48 -0400645--- a/src/udev/udev-event.c
646+++ b/src/udev/udev-event.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500647@@ -34,6 +34,7 @@
Brad Bishopa34c0302019-09-23 22:34:48 -0400648 #include "udev-util.h"
649 #include "udev-watch.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400650 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500651+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400652
Brad Bishopa34c0302019-09-23 22:34:48 -0400653 typedef struct Spawn {
654 sd_device *device;
655diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500656index b9b350d1ef7a..2c114cc77572 100644
Brad Bishopa34c0302019-09-23 22:34:48 -0400657--- a/src/udev/udev-rules.c
658+++ b/src/udev/udev-rules.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500659@@ -30,6 +30,7 @@
Brad Bishopa34c0302019-09-23 22:34:48 -0400660 #include "udev-rules.h"
661 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500662 #include "virt.h"
663+#include "missing_stdlib.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400664
665 #define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
666