blob: d63e3c0d0944718dcde82dacce418c62924e1314 [file] [log] [blame]
Andrew Geisslerd1e89492021-02-12 15:35:20 -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 Geisslerd1e89492021-02-12 15:35:20 -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 Geisslerd1e89492021-02-12 15:35:20 -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 Bishop19323692019-04-05 15:28:33 -040073--- a/meson.build
74+++ b/meson.build
Andrew Geisslerd1e89492021-02-12 15:35:20 -060075@@ -535,6 +535,7 @@ foreach ident : [
Andrew Geissler82c905d2020-04-13 13:39:40 -050076 #include <sys/wait.h>'''],
Andrew Geisslerd1e89492021-02-12 15:35:20 -060077 ['mallinfo', '''#include <malloc.h>'''],
78 ['close_range', '''#include <unistd.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 Bishopc342db32019-05-15 21:57:59 -040083--- a/src/backlight/backlight.c
84+++ b/src/backlight/backlight.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -060085@@ -19,6 +19,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -040086 #include "string-util.h"
87 #include "strv.h"
88 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -050089+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -040090
Andrew Geisslerd1e89492021-02-12 15:35:20 -060091 static int help(void) {
92 _cleanup_free_ char *link = NULL;
Andrew Geissler82c905d2020-04-13 13:39:40 -050093--- a/src/basic/cgroup-util.c
94+++ b/src/basic/cgroup-util.c
Andrew Geissler635e0e42020-08-21 15:58:33 -050095@@ -38,6 +38,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -050096 #include "unit-name.h"
97 #include "user-util.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -050098 #include "xattr-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -050099+#include "missing_stdlib.h"
100
101 static int cg_enumerate_items(const char *controller, const char *path, FILE **_f, const char *item) {
102 _cleanup_free_ char *fs = NULL;
Brad Bishopc342db32019-05-15 21:57:59 -0400103--- a/src/basic/env-util.c
104+++ b/src/basic/env-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500105@@ -15,6 +15,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400106 #include "string-util.h"
107 #include "strv.h"
108 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500109+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400110
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600111 /* We follow bash for the character set. Different shells have different rules. */
112 #define VALID_BASH_ENV_NAME_CHARS \
Andrew Geissler82c905d2020-04-13 13:39:40 -0500113--- a/src/basic/log.c
114+++ b/src/basic/log.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600115@@ -36,6 +36,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500116 #include "terminal-util.h"
117 #include "time-util.h"
118 #include "utf8.h"
119+#include "missing_stdlib.h"
120
121 #define SNDBUF_SIZE (8*1024*1024)
122
Brad Bishop19323692019-04-05 15:28:33 -0400123--- a/src/basic/missing_stdlib.h
124+++ b/src/basic/missing_stdlib.h
125@@ -11,3 +11,15 @@
Brad Bishopc68388fc2019-08-26 01:33:31 -0400126 # error "neither secure_getenv nor __secure_getenv are available"
Brad Bishop19323692019-04-05 15:28:33 -0400127 # endif
128 #endif
129+
130+/* string.h */
131+#if ! HAVE_STRNDUPA
132+#define strndupa(s, n) \
133+ ({ \
134+ const char *__old = (s); \
135+ size_t __len = strnlen(__old, (n)); \
136+ char *__new = (char *)alloca(__len + 1); \
137+ __new[__len] = '\0'; \
138+ (char *)memcpy(__new, __old, __len); \
139+ })
140+#endif
Brad Bishop19323692019-04-05 15:28:33 -0400141--- a/src/basic/mkdir.c
142+++ b/src/basic/mkdir.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600143@@ -14,6 +14,7 @@
Brad Bishop19323692019-04-05 15:28:33 -0400144 #include "stat-util.h"
145 #include "stdio-util.h"
146 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500147+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400148
Andrew Geissler635e0e42020-08-21 15:58:33 -0500149 int mkdir_safe_internal(
150 const char *path,
Brad Bishop19323692019-04-05 15:28:33 -0400151--- a/src/basic/parse-util.c
152+++ b/src/basic/parse-util.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600153@@ -22,6 +22,7 @@
Brad Bishop19323692019-04-05 15:28:33 -0400154 #include "stat-util.h"
155 #include "string-util.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -0500156 #include "strv.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500157+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400158
159 int parse_boolean(const char *v) {
160 if (!v)
Andrew Geissler635e0e42020-08-21 15:58:33 -0500161--- a/src/basic/path-lookup.c
162+++ b/src/basic/path-lookup.c
163@@ -15,6 +15,7 @@
164 #include "strv.h"
165 #include "tmpfile-util.h"
166 #include "user-util.h"
167+#include "missing_stdlib.h"
168
169 int xdg_user_runtime_dir(char **ret, const char *suffix) {
170 const char *e;
Brad Bishopc342db32019-05-15 21:57:59 -0400171--- a/src/basic/proc-cmdline.c
172+++ b/src/basic/proc-cmdline.c
173@@ -15,6 +15,7 @@
174 #include "string-util.h"
175 #include "util.h"
176 #include "virt.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500177+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400178
179 int proc_cmdline(char **ret) {
180 const char *e;
Brad Bishop19323692019-04-05 15:28:33 -0400181--- a/src/basic/procfs-util.c
182+++ b/src/basic/procfs-util.c
183@@ -11,6 +11,7 @@
184 #include "procfs-util.h"
185 #include "stdio-util.h"
186 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500187+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400188
189 int procfs_tasks_get_limit(uint64_t *ret) {
190 _cleanup_free_ char *value = NULL;
Andrew Geissler82c905d2020-04-13 13:39:40 -0500191--- a/src/basic/selinux-util.c
192+++ b/src/basic/selinux-util.c
Andrew Geissler635e0e42020-08-21 15:58:33 -0500193@@ -27,6 +27,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500194 #include "selinux-util.h"
195 #include "stdio-util.h"
196 #include "time-util.h"
197+#include "missing_stdlib.h"
198
199 #if HAVE_SELINUX
200 DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free);
Brad Bishopc342db32019-05-15 21:57:59 -0400201--- a/src/basic/time-util.c
202+++ b/src/basic/time-util.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600203@@ -27,6 +27,7 @@
Brad Bishop19323692019-04-05 15:28:33 -0400204 #include "string-util.h"
205 #include "strv.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400206 #include "time-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500207+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400208
Brad Bishopc342db32019-05-15 21:57:59 -0400209 static clockid_t map_clock_id(clockid_t c) {
Brad Bishop19323692019-04-05 15:28:33 -0400210
Andrew Geissler82c905d2020-04-13 13:39:40 -0500211--- a/src/boot/bless-boot.c
212+++ b/src/boot/bless-boot.c
213@@ -18,6 +18,7 @@
214 #include "util.h"
215 #include "verbs.h"
216 #include "virt.h"
217+#include "missing_stdlib.h"
218
219 static char **arg_path = NULL;
220
Brad Bishopc342db32019-05-15 21:57:59 -0400221--- a/src/core/dbus-cgroup.c
222+++ b/src/core/dbus-cgroup.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600223@@ -16,6 +16,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400224 #include "fileio.h"
225 #include "limits-util.h"
226 #include "path-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500227+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400228
Andrew Geissler82c905d2020-04-13 13:39:40 -0500229 BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve);
Brad Bishopc342db32019-05-15 21:57:59 -0400230
Andrew Geissler82c905d2020-04-13 13:39:40 -0500231--- a/src/core/dbus-execute.c
232+++ b/src/core/dbus-execute.c
233@@ -41,6 +41,7 @@
234 #include "unit-printf.h"
235 #include "user-util.h"
236 #include "utf8.h"
237+#include "missing_stdlib.h"
238
239 BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput);
240 static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
Brad Bishopc342db32019-05-15 21:57:59 -0400241--- a/src/core/dbus-util.c
242+++ b/src/core/dbus-util.c
243@@ -7,6 +7,7 @@
244 #include "unit-printf.h"
245 #include "user-util.h"
246 #include "unit.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500247+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400248
249 int bus_property_get_triggered_unit(
250 sd_bus *bus,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500251--- a/src/core/execute.c
252+++ b/src/core/execute.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600253@@ -96,6 +96,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500254 #include "unit.h"
255 #include "user-util.h"
256 #include "utmp-wtmp.h"
257+#include "missing_stdlib.h"
258
259 #define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC)
260 #define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC)
Brad Bishopc342db32019-05-15 21:57:59 -0400261--- a/src/core/kmod-setup.c
262+++ b/src/core/kmod-setup.c
263@@ -11,6 +11,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400264 #include "macro.h"
265 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500266 #include "missing_type.h"
267+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400268
269 #if HAVE_KMOD
Andrew Geissler82c905d2020-04-13 13:39:40 -0500270 #include "module-util.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400271--- a/src/core/service.c
272+++ b/src/core/service.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500273@@ -41,6 +41,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400274 #include "unit.h"
275 #include "utf8.h"
276 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500277+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400278
279 static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
280 [SERVICE_DEAD] = UNIT_INACTIVE,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500281--- a/src/coredump/coredump-vacuum.c
282+++ b/src/coredump/coredump-vacuum.c
283@@ -16,6 +16,7 @@
284 #include "string-util.h"
285 #include "time-util.h"
286 #include "user-util.h"
287+#include "missing_stdlib.h"
288
289 #define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL) /* 1 MiB */
290 #define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */
Andrew Geissler82c905d2020-04-13 13:39:40 -0500291--- a/src/journal-remote/journal-remote-main.c
292+++ b/src/journal-remote/journal-remote-main.c
293@@ -22,6 +22,7 @@
294 #include "stat-util.h"
295 #include "string-table.h"
296 #include "strv.h"
297+#include "missing_stdlib.h"
298
299 #define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem"
300 #define CERT_FILE CERTIFICATE_ROOT "/certs/journal-remote.pem"
Brad Bishopc342db32019-05-15 21:57:59 -0400301--- a/src/journal/journalctl.c
302+++ b/src/journal/journalctl.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600303@@ -73,6 +73,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400304 #include "unit-name.h"
305 #include "user-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400306 #include "varlink.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500307+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400308
309 #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
Andrew Geissler82c905d2020-04-13 13:39:40 -0500310 #define PROCESS_INOTIFY_INTERVAL 1024 /* Every 1,024 messages processed */
Andrew Geissler82c905d2020-04-13 13:39:40 -0500311--- a/src/journal/sd-journal.c
312+++ b/src/journal/sd-journal.c
313@@ -40,6 +40,7 @@
314 #include "string-util.h"
315 #include "strv.h"
316 #include "syslog-util.h"
317+#include "missing_stdlib.h"
318
319 #define JOURNAL_FILES_MAX 7168
Brad Bishopc342db32019-05-15 21:57:59 -0400320
Brad Bishopc342db32019-05-15 21:57:59 -0400321--- a/src/libsystemd/sd-bus/bus-message.c
322+++ b/src/libsystemd/sd-bus/bus-message.c
323@@ -21,6 +21,7 @@
324 #include "strv.h"
325 #include "time-util.h"
326 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500327+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400328
329 static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
330
Brad Bishopc342db32019-05-15 21:57:59 -0400331--- a/src/libsystemd/sd-bus/bus-objects.c
332+++ b/src/libsystemd/sd-bus/bus-objects.c
333@@ -13,6 +13,7 @@
334 #include "set.h"
335 #include "string-util.h"
336 #include "strv.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500337+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400338
339 static int node_vtable_get_userdata(
340 sd_bus *bus,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500341--- a/src/libsystemd/sd-bus/bus-socket.c
342+++ b/src/libsystemd/sd-bus/bus-socket.c
343@@ -28,6 +28,7 @@
344 #include "string-util.h"
345 #include "user-util.h"
346 #include "utf8.h"
347+#include "missing_stdlib.h"
348
349 #define SNDBUF_SIZE (8*1024*1024)
350
Andrew Geissler82c905d2020-04-13 13:39:40 -0500351--- a/src/libsystemd/sd-bus/sd-bus.c
352+++ b/src/libsystemd/sd-bus/sd-bus.c
353@@ -41,6 +41,7 @@
354 #include "process-util.h"
355 #include "string-util.h"
356 #include "strv.h"
357+#include "missing_stdlib.h"
358
359 #define log_debug_bus_message(m) \
360 do { \
Brad Bishopc342db32019-05-15 21:57:59 -0400361--- a/src/libsystemd/sd-bus/test-bus-benchmark.c
362+++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
363@@ -14,6 +14,7 @@
364 #include "missing_resource.h"
365 #include "time-util.h"
366 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500367+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400368
369 #define MAX_SIZE (2*1024*1024)
370
Brad Bishopc342db32019-05-15 21:57:59 -0400371--- a/src/locale/keymap-util.c
372+++ b/src/locale/keymap-util.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500373@@ -21,6 +21,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400374 #include "string-util.h"
375 #include "strv.h"
376 #include "tmpfile-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500377+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400378
379 static bool startswith_comma(const char *s, const char *prefix) {
380 s = startswith(s, prefix);
Brad Bishopa34c0302019-09-23 22:34:48 -0400381--- a/src/login/pam_systemd.c
382+++ b/src/login/pam_systemd.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500383@@ -31,6 +31,7 @@
384 #include "locale-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400385 #include "login-util.h"
386 #include "macro.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500387+#include "missing_stdlib.h"
388 #include "pam-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400389 #include "parse-util.h"
390 #include "path-util.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400391--- a/src/network/generator/network-generator.c
392+++ b/src/network/generator/network-generator.c
393@@ -13,6 +13,7 @@
394 #include "string-table.h"
395 #include "string-util.h"
396 #include "strv.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500397+#include "missing_stdlib.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400398
399 /*
400 # .network
Brad Bishopc342db32019-05-15 21:57:59 -0400401--- a/src/nspawn/nspawn-settings.c
402+++ b/src/nspawn/nspawn-settings.c
403@@ -16,6 +16,7 @@
404 #include "strv.h"
Brad Bishop19323692019-04-05 15:28:33 -0400405 #include "user-util.h"
406 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500407+#include "missing_stdlib.h"
Brad Bishop19323692019-04-05 15:28:33 -0400408
Brad Bishopc342db32019-05-15 21:57:59 -0400409 Settings *settings_new(void) {
410 Settings *s;
Andrew Geissler82c905d2020-04-13 13:39:40 -0500411--- a/src/nss-mymachines/nss-mymachines.c
412+++ b/src/nss-mymachines/nss-mymachines.c
413@@ -19,6 +19,7 @@
Andrew Geissler635e0e42020-08-21 15:58:33 -0500414 #include "nss-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500415 #include "signal-util.h"
416 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500417+#include "missing_stdlib.h"
418
419 NSS_GETHOSTBYNAME_PROTOTYPES(mymachines);
420 NSS_GETPW_PROTOTYPES(mymachines);
Andrew Geissler82c905d2020-04-13 13:39:40 -0500421--- a/src/portable/portable.c
422+++ b/src/portable/portable.c
423@@ -31,6 +31,7 @@
424 #include "strv.h"
425 #include "tmpfile-util.h"
426 #include "user-util.h"
427+#include "missing_stdlib.h"
428
429 static const char profile_dirs[] = CONF_PATHS_NULSTR("systemd/portable/profile");
430
Andrew Geissler82c905d2020-04-13 13:39:40 -0500431--- a/src/resolve/resolvectl.c
432+++ b/src/resolve/resolvectl.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600433@@ -37,6 +37,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500434 #include "terminal-util.h"
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600435 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500436 #include "verbs.h"
437+#include "missing_stdlib.h"
438
439 static int arg_family = AF_UNSPEC;
440 static int arg_ifindex = 0;
Andrew Geissler635e0e42020-08-21 15:58:33 -0500441--- a/src/shared/bus-get-properties.c
442+++ b/src/shared/bus-get-properties.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600443@@ -4,6 +4,7 @@
Andrew Geissler635e0e42020-08-21 15:58:33 -0500444 #include "rlimit-util.h"
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600445 #include "stdio-util.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -0500446 #include "string-util.h"
447+#include "missing_stdlib.h"
448
449 int bus_property_get_bool(
450 sd_bus *bus,
Andrew Geissler82c905d2020-04-13 13:39:40 -0500451--- a/src/shared/bus-unit-procs.c
452+++ b/src/shared/bus-unit-procs.c
453@@ -10,6 +10,7 @@
454 #include "sort-util.h"
455 #include "string-util.h"
456 #include "terminal-util.h"
457+#include "missing_stdlib.h"
458
459 struct CGroupInfo {
460 char *cgroup_path;
Andrew Geissler82c905d2020-04-13 13:39:40 -0500461--- a/src/shared/bus-unit-util.c
462+++ b/src/shared/bus-unit-util.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600463@@ -44,6 +44,7 @@
Andrew Geissler82c905d2020-04-13 13:39:40 -0500464 #include "unit-def.h"
465 #include "user-util.h"
466 #include "utf8.h"
467+#include "missing_stdlib.h"
468
469 int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
470 assert(message);
Andrew Geissler82c905d2020-04-13 13:39:40 -0500471--- a/src/shared/bus-util.c
472+++ b/src/shared/bus-util.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600473@@ -21,6 +21,7 @@
474 #include "path-util.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -0500475 #include "socket-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500476 #include "stdio-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500477+#include "missing_stdlib.h"
478
479 static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
480 sd_event *e = userdata;
Brad Bishopc342db32019-05-15 21:57:59 -0400481--- a/src/shared/dns-domain.c
482+++ b/src/shared/dns-domain.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600483@@ -17,6 +17,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400484 #include "string-util.h"
485 #include "strv.h"
486 #include "utf8.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500487+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400488
489 int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
490 const char *n;
Brad Bishopc342db32019-05-15 21:57:59 -0400491--- a/src/shared/journal-importer.c
492+++ b/src/shared/journal-importer.c
Brad Bishopa34c0302019-09-23 22:34:48 -0400493@@ -14,6 +14,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400494 #include "parse-util.h"
495 #include "string-util.h"
496 #include "unaligned.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500497+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400498
499 enum {
500 IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */
Brad Bishopc342db32019-05-15 21:57:59 -0400501--- a/src/shared/logs-show.c
502+++ b/src/shared/logs-show.c
Andrew Geissler635e0e42020-08-21 15:58:33 -0500503@@ -41,6 +41,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400504 #include "utf8.h"
505 #include "util.h"
Andrew Geissler635e0e42020-08-21 15:58:33 -0500506 #include "web-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500507+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400508
509 /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
510 #define PRINT_LINE_THRESHOLD 3
Brad Bishopc342db32019-05-15 21:57:59 -0400511--- a/src/shared/pager.c
512+++ b/src/shared/pager.c
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600513@@ -26,6 +26,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400514 #include "strv.h"
515 #include "terminal-util.h"
516 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500517+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400518
519 static pid_t pager_pid = 0;
520
Brad Bishopc342db32019-05-15 21:57:59 -0400521--- a/src/shared/uid-range.c
522+++ b/src/shared/uid-range.c
523@@ -9,6 +9,7 @@
524 #include "sort-util.h"
525 #include "uid-range.h"
526 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500527+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400528
Brad Bishop19323692019-04-05 15:28:33 -0400529 static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
530 assert(range);
Brad Bishopc342db32019-05-15 21:57:59 -0400531--- a/src/socket-proxy/socket-proxyd.c
532+++ b/src/socket-proxy/socket-proxyd.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500533@@ -26,6 +26,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400534 #include "socket-util.h"
535 #include "string-util.h"
536 #include "util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500537+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400538
539 #define BUFFER_SIZE (256 * 1024)
540
Brad Bishopc342db32019-05-15 21:57:59 -0400541--- a/src/test/test-hexdecoct.c
542+++ b/src/test/test-hexdecoct.c
543@@ -6,6 +6,7 @@
544 #include "hexdecoct.h"
545 #include "macro.h"
546 #include "string-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500547+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400548
549 static void test_hexchar(void) {
550 assert_se(hexchar(0xa) == 'a');
Brad Bishopc342db32019-05-15 21:57:59 -0400551--- a/src/udev/udev-builtin-path_id.c
552+++ b/src/udev/udev-builtin-path_id.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500553@@ -22,6 +22,7 @@
Brad Bishopc342db32019-05-15 21:57:59 -0400554 #include "strv.h"
555 #include "sysexits.h"
556 #include "udev-builtin.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500557+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400558
559 _printf_(2,3)
560 static void path_prepend(char **path, const char *fmt, ...) {
Brad Bishopa34c0302019-09-23 22:34:48 -0400561--- a/src/udev/udev-event.c
562+++ b/src/udev/udev-event.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500563@@ -34,6 +34,7 @@
Brad Bishopa34c0302019-09-23 22:34:48 -0400564 #include "udev-util.h"
565 #include "udev-watch.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400566 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500567+#include "missing_stdlib.h"
Brad Bishopc342db32019-05-15 21:57:59 -0400568
Brad Bishopa34c0302019-09-23 22:34:48 -0400569 typedef struct Spawn {
570 sd_device *device;
Brad Bishopa34c0302019-09-23 22:34:48 -0400571--- a/src/udev/udev-rules.c
572+++ b/src/udev/udev-rules.c
Andrew Geissler82c905d2020-04-13 13:39:40 -0500573@@ -30,6 +30,7 @@
Brad Bishopa34c0302019-09-23 22:34:48 -0400574 #include "udev-rules.h"
575 #include "user-util.h"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500576 #include "virt.h"
577+#include "missing_stdlib.h"
Brad Bishopa34c0302019-09-23 22:34:48 -0400578
579 #define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
580
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600581--- a/src/basic/mountpoint-util.c
582+++ b/src/basic/mountpoint-util.c
583@@ -10,6 +10,7 @@
584 #include "fs-util.h"
585 #include "missing_stat.h"
586 #include "missing_syscall.h"
587+#include "missing_stdlib.h"
588 #include "mountpoint-util.h"
589 #include "parse-util.h"
590 #include "path-util.h"