123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583 |
- From 106b7bd7186c9d6c1dcd72bd4ca6457d3fa72d0b Mon Sep 17 00:00:00 2001
- From: Chen Qi <Qi.Chen@windriver.com>
- Date: Mon, 25 Feb 2019 14:18:21 +0800
- Subject: [PATCH] src/basic/missing.h: check for missing strndupa
- include missing.h for definition of strndupa
- Upstream-Status: Inappropriate [musl specific]
- Signed-off-by: Khem Raj <raj.khem@gmail.com>
- Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
- [Rebased for v242]
- Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
- [rebased for systemd 243]
- Signed-off-by: Scott Murray <scott.murray@konsulko.com>
- Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
- [rebased for systemd 244]
- [Rebased for v247]
- Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
- ---
- meson.build | 1 +
- src/backlight/backlight.c | 1 +
- src/basic/cgroup-util.c | 1 +
- src/basic/env-util.c | 1 +
- src/basic/log.c | 1 +
- src/basic/missing_stdlib.h | 12 ++++++++++++
- src/basic/mkdir.c | 1 +
- src/basic/mountpoint-util.c | 1 +
- src/basic/parse-util.c | 1 +
- src/basic/path-lookup.c | 1 +
- src/basic/percent-util.c | 1 +
- src/basic/proc-cmdline.c | 1 +
- src/basic/procfs-util.c | 1 +
- src/basic/time-util.c | 1 +
- src/boot/bless-boot.c | 1 +
- src/core/dbus-cgroup.c | 1 +
- src/core/dbus-execute.c | 1 +
- src/core/dbus-util.c | 1 +
- src/core/execute.c | 1 +
- src/core/kmod-setup.c | 1 +
- src/core/service.c | 1 +
- src/coredump/coredump-vacuum.c | 1 +
- src/fstab-generator/fstab-generator.c | 1 +
- src/journal-remote/journal-remote-main.c | 1 +
- src/journal/journalctl.c | 1 +
- src/libsystemd/sd-bus/bus-message.c | 1 +
- src/libsystemd/sd-bus/bus-objects.c | 1 +
- src/libsystemd/sd-bus/bus-socket.c | 1 +
- src/libsystemd/sd-bus/sd-bus.c | 1 +
- src/libsystemd/sd-bus/test-bus-benchmark.c | 1 +
- src/libsystemd/sd-journal/sd-journal.c | 1 +
- src/locale/keymap-util.c | 1 +
- src/login/pam_systemd.c | 1 +
- src/network/generator/network-generator.c | 1 +
- src/nspawn/nspawn-settings.c | 1 +
- src/nss-mymachines/nss-mymachines.c | 1 +
- src/portable/portable.c | 1 +
- src/resolve/resolvectl.c | 1 +
- src/shared/bus-get-properties.c | 1 +
- src/shared/bus-unit-procs.c | 1 +
- src/shared/bus-unit-util.c | 1 +
- src/shared/bus-util.c | 1 +
- src/shared/dns-domain.c | 1 +
- src/shared/journal-importer.c | 1 +
- src/shared/logs-show.c | 1 +
- src/shared/pager.c | 1 +
- src/shared/uid-range.c | 1 +
- src/socket-proxy/socket-proxyd.c | 1 +
- src/test/test-hexdecoct.c | 1 +
- src/udev/udev-builtin-path_id.c | 1 +
- src/udev/udev-event.c | 1 +
- src/udev/udev-rules.c | 1 +
- 52 files changed, 63 insertions(+)
- --- a/meson.build
- +++ b/meson.build
- @@ -557,6 +557,7 @@ foreach ident : ['secure_getenv', '__sec
- endforeach
-
- foreach ident : [
- + ['strndupa' , '''#include <string.h>'''],
- ['memfd_create', '''#include <sys/mman.h>'''],
- ['gettid', '''#include <sys/types.h>
- #include <unistd.h>'''],
- --- a/src/backlight/backlight.c
- +++ b/src/backlight/backlight.c
- @@ -20,5 +20,6 @@
- #include "string-util.h"
- #include "strv.h"
- #include "terminal-util.h"
- +#include "missing_stdlib.h"
-
- #define PCI_CLASS_GRAPHICS_CARD 0x30000
-
- --- a/src/basic/cgroup-util.c
- +++ b/src/basic/cgroup-util.c
- @@ -37,6 +37,7 @@
- #include "unit-name.h"
- #include "user-util.h"
- #include "xattr-util.h"
- +#include "missing_stdlib.h"
-
- static int cg_enumerate_items(const char *controller, const char *path, FILE **_f, const char *item) {
- _cleanup_free_ char *fs = NULL;
- --- a/src/basic/env-util.c
- +++ b/src/basic/env-util.c
- @@ -19,6 +19,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "utf8.h"
- +#include "missing_stdlib.h"
-
- /* We follow bash for the character set. Different shells have different rules. */
- #define VALID_BASH_ENV_NAME_CHARS \
- --- a/src/basic/log.c
- +++ b/src/basic/log.c
- @@ -36,6 +36,7 @@
- #include "terminal-util.h"
- #include "time-util.h"
- #include "utf8.h"
- +#include "missing_stdlib.h"
-
- #define SNDBUF_SIZE (8*1024*1024)
-
- --- a/src/basic/missing_stdlib.h
- +++ b/src/basic/missing_stdlib.h
- @@ -11,3 +11,15 @@
- # error "neither secure_getenv nor __secure_getenv are available"
- # endif
- #endif
- +
- +/* string.h */
- +#if ! HAVE_STRNDUPA
- +#define strndupa(s, n) \
- + ({ \
- + const char *__old = (s); \
- + size_t __len = strnlen(__old, (n)); \
- + char *__new = (char *)alloca(__len + 1); \
- + __new[__len] = '\0'; \
- + (char *)memcpy(__new, __old, __len); \
- + })
- +#endif
- --- a/src/basic/mkdir.c
- +++ b/src/basic/mkdir.c
- @@ -15,6 +15,7 @@
- #include "stat-util.h"
- #include "stdio-util.h"
- #include "user-util.h"
- +#include "missing_stdlib.h"
-
- int mkdir_safe_internal(
- const char *path,
- --- a/src/basic/mountpoint-util.c
- +++ b/src/basic/mountpoint-util.c
- @@ -13,6 +13,7 @@
- #include "missing_stat.h"
- #include "missing_syscall.h"
- #include "mkdir.h"
- +#include "missing_stdlib.h"
- #include "mountpoint-util.h"
- #include "nulstr-util.h"
- #include "parse-util.h"
- --- a/src/basic/parse-util.c
- +++ b/src/basic/parse-util.c
- @@ -18,6 +18,7 @@
- #include "stat-util.h"
- #include "string-util.h"
- #include "strv.h"
- +#include "missing_stdlib.h"
-
- int parse_boolean(const char *v) {
- if (!v)
- --- a/src/basic/path-lookup.c
- +++ b/src/basic/path-lookup.c
- @@ -16,6 +16,7 @@
- #include "strv.h"
- #include "tmpfile-util.h"
- #include "user-util.h"
- +#include "missing_stdlib.h"
-
- int xdg_user_runtime_dir(char **ret, const char *suffix) {
- const char *e;
- --- a/src/basic/percent-util.c
- +++ b/src/basic/percent-util.c
- @@ -3,6 +3,7 @@
- #include "percent-util.h"
- #include "string-util.h"
- #include "parse-util.h"
- +#include "missing_stdlib.h"
-
- static int parse_parts_value_whole(const char *p, const char *symbol) {
- const char *pc, *n;
- --- a/src/basic/proc-cmdline.c
- +++ b/src/basic/proc-cmdline.c
- @@ -15,6 +15,7 @@
- #include "special.h"
- #include "string-util.h"
- #include "virt.h"
- +#include "missing_stdlib.h"
-
- int proc_cmdline(char **ret) {
- const char *e;
- --- a/src/basic/procfs-util.c
- +++ b/src/basic/procfs-util.c
- @@ -12,6 +12,7 @@
- #include "procfs-util.h"
- #include "stdio-util.h"
- #include "string-util.h"
- +#include "missing_stdlib.h"
-
- int procfs_get_pid_max(uint64_t *ret) {
- _cleanup_free_ char *value = NULL;
- --- a/src/basic/time-util.c
- +++ b/src/basic/time-util.c
- @@ -26,6 +26,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "time-util.h"
- +#include "missing_stdlib.h"
-
- static clockid_t map_clock_id(clockid_t c) {
-
- --- a/src/boot/bless-boot.c
- +++ b/src/boot/bless-boot.c
- @@ -22,6 +22,7 @@
- #include "terminal-util.h"
- #include "verbs.h"
- #include "virt.h"
- +#include "missing_stdlib.h"
-
- static char **arg_path = NULL;
-
- --- a/src/core/dbus-cgroup.c
- +++ b/src/core/dbus-cgroup.c
- @@ -21,6 +21,7 @@
- #include "parse-util.h"
- #include "path-util.h"
- #include "percent-util.h"
- +#include "missing_stdlib.h"
- #include "socket-util.h"
-
- BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve);
- --- a/src/core/dbus-execute.c
- +++ b/src/core/dbus-execute.c
- @@ -44,6 +44,7 @@
- #include "unit-printf.h"
- #include "user-util.h"
- #include "utf8.h"
- +#include "missing_stdlib.h"
-
- BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput);
- static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
- --- a/src/core/dbus-util.c
- +++ b/src/core/dbus-util.c
- @@ -9,6 +9,7 @@
- #include "unit-printf.h"
- #include "user-util.h"
- #include "unit.h"
- +#include "missing_stdlib.h"
-
- int bus_property_get_triggered_unit(
- sd_bus *bus,
- --- a/src/core/execute.c
- +++ b/src/core/execute.c
- @@ -104,6 +104,7 @@
- #include "unit-serialize.h"
- #include "user-util.h"
- #include "utmp-wtmp.h"
- +#include "missing_stdlib.h"
-
- #define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC)
- #define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC)
- --- a/src/core/kmod-setup.c
- +++ b/src/core/kmod-setup.c
- @@ -11,6 +11,7 @@
- #include "recurse-dir.h"
- #include "string-util.h"
- #include "virt.h"
- +#include "missing_stdlib.h"
-
- #if HAVE_KMOD
- #include "module-util.h"
- --- a/src/core/service.c
- +++ b/src/core/service.c
- @@ -42,6 +42,7 @@
- #include "unit-name.h"
- #include "unit.h"
- #include "utf8.h"
- +#include "missing_stdlib.h"
-
- #define service_spawn(...) service_spawn_internal(__func__, __VA_ARGS__)
-
- --- a/src/coredump/coredump-vacuum.c
- +++ b/src/coredump/coredump-vacuum.c
- @@ -17,6 +17,7 @@
- #include "string-util.h"
- #include "time-util.h"
- #include "user-util.h"
- +#include "missing_stdlib.h"
-
- #define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL) /* 1 MiB */
- #define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */
- --- a/src/fstab-generator/fstab-generator.c
- +++ b/src/fstab-generator/fstab-generator.c
- @@ -32,6 +32,7 @@
- #include "unit-name.h"
- #include "virt.h"
- #include "volatile-util.h"
- +#include "missing_stdlib.h"
-
- typedef enum MountPointFlags {
- MOUNT_NOAUTO = 1 << 0,
- --- a/src/journal-remote/journal-remote-main.c
- +++ b/src/journal-remote/journal-remote-main.c
- @@ -24,6 +24,7 @@
- #include "stat-util.h"
- #include "string-table.h"
- #include "strv.h"
- +#include "missing_stdlib.h"
-
- #define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem"
- #define CERT_FILE CERTIFICATE_ROOT "/certs/journal-remote.pem"
- --- a/src/journal/journalctl.c
- +++ b/src/journal/journalctl.c
- @@ -70,6 +70,7 @@
- #include "unit-name.h"
- #include "user-util.h"
- #include "varlink.h"
- +#include "missing_stdlib.h"
-
- #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
- #define PROCESS_INOTIFY_INTERVAL 1024 /* Every 1,024 messages processed */
- --- a/src/libsystemd/sd-bus/bus-message.c
- +++ b/src/libsystemd/sd-bus/bus-message.c
- @@ -19,6 +19,7 @@
- #include "strv.h"
- #include "time-util.h"
- #include "utf8.h"
- +#include "missing_stdlib.h"
-
- static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
- static int message_parse_fields(sd_bus_message *m);
- --- a/src/libsystemd/sd-bus/bus-objects.c
- +++ b/src/libsystemd/sd-bus/bus-objects.c
- @@ -11,6 +11,7 @@
- #include "missing_capability.h"
- #include "string-util.h"
- #include "strv.h"
- +#include "missing_stdlib.h"
-
- static int node_vtable_get_userdata(
- sd_bus *bus,
- --- a/src/libsystemd/sd-bus/bus-socket.c
- +++ b/src/libsystemd/sd-bus/bus-socket.c
- @@ -28,6 +28,7 @@
- #include "string-util.h"
- #include "user-util.h"
- #include "utf8.h"
- +#include "missing_stdlib.h"
-
- #define SNDBUF_SIZE (8*1024*1024)
-
- --- a/src/libsystemd/sd-bus/sd-bus.c
- +++ b/src/libsystemd/sd-bus/sd-bus.c
- @@ -44,6 +44,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "user-util.h"
- +#include "missing_stdlib.h"
-
- #define log_debug_bus_message(m) \
- do { \
- --- a/src/libsystemd/sd-bus/test-bus-benchmark.c
- +++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
- @@ -14,6 +14,7 @@
- #include "missing_resource.h"
- #include "string-util.h"
- #include "time-util.h"
- +#include "missing_stdlib.h"
-
- #define MAX_SIZE (2*1024*1024)
-
- --- a/src/libsystemd/sd-journal/sd-journal.c
- +++ b/src/libsystemd/sd-journal/sd-journal.c
- @@ -41,6 +41,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "syslog-util.h"
- +#include "missing_stdlib.h"
-
- #define JOURNAL_FILES_MAX 7168
-
- --- a/src/login/pam_systemd.c
- +++ b/src/login/pam_systemd.c
- @@ -32,6 +32,7 @@
- #include "locale-util.h"
- #include "login-util.h"
- #include "macro.h"
- +#include "missing_stdlib.h"
- #include "pam-util.h"
- #include "parse-util.h"
- #include "path-util.h"
- --- a/src/network/generator/network-generator.c
- +++ b/src/network/generator/network-generator.c
- @@ -13,6 +13,7 @@
- #include "string-table.h"
- #include "string-util.h"
- #include "strv.h"
- +#include "missing_stdlib.h"
-
- /*
- # .network
- --- a/src/nspawn/nspawn-settings.c
- +++ b/src/nspawn/nspawn-settings.c
- @@ -17,6 +17,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "user-util.h"
- +#include "missing_stdlib.h"
-
- Settings *settings_new(void) {
- Settings *s;
- --- a/src/nss-mymachines/nss-mymachines.c
- +++ b/src/nss-mymachines/nss-mymachines.c
- @@ -21,6 +21,7 @@
- #include "nss-util.h"
- #include "signal-util.h"
- #include "string-util.h"
- +#include "missing_stdlib.h"
-
- static void setup_logging_once(void) {
- static pthread_once_t once = PTHREAD_ONCE_INIT;
- --- a/src/portable/portable.c
- +++ b/src/portable/portable.c
- @@ -39,6 +39,7 @@
- #include "strv.h"
- #include "tmpfile-util.h"
- #include "user-util.h"
- +#include "missing_stdlib.h"
-
- /* Markers used in the first line of our 20-portable.conf unit file drop-in to determine, that a) the unit file was
- * dropped there by the portable service logic and b) for which image it was dropped there. */
- --- a/src/resolve/resolvectl.c
- +++ b/src/resolve/resolvectl.c
- @@ -46,6 +46,7 @@
- #include "varlink.h"
- #include "verb-log-control.h"
- #include "verbs.h"
- +#include "missing_stdlib.h"
-
- static int arg_family = AF_UNSPEC;
- static int arg_ifindex = 0;
- --- a/src/shared/bus-get-properties.c
- +++ b/src/shared/bus-get-properties.c
- @@ -4,6 +4,7 @@
- #include "rlimit-util.h"
- #include "stdio-util.h"
- #include "string-util.h"
- +#include "missing_stdlib.h"
-
- int bus_property_get_bool(
- sd_bus *bus,
- --- a/src/shared/bus-unit-procs.c
- +++ b/src/shared/bus-unit-procs.c
- @@ -11,6 +11,7 @@
- #include "sort-util.h"
- #include "string-util.h"
- #include "terminal-util.h"
- +#include "missing_stdlib.h"
-
- struct CGroupInfo {
- char *cgroup_path;
- --- a/src/shared/bus-unit-util.c
- +++ b/src/shared/bus-unit-util.c
- @@ -49,6 +49,7 @@
- #include "unit-def.h"
- #include "user-util.h"
- #include "utf8.h"
- +#include "missing_stdlib.h"
-
- int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
- assert(message);
- --- a/src/shared/bus-util.c
- +++ b/src/shared/bus-util.c
- @@ -21,6 +21,7 @@
- #include "path-util.h"
- #include "socket-util.h"
- #include "stdio-util.h"
- +#include "missing_stdlib.h"
-
- static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
- sd_event *e = ASSERT_PTR(userdata);
- --- a/src/shared/dns-domain.c
- +++ b/src/shared/dns-domain.c
- @@ -18,6 +18,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "utf8.h"
- +#include "missing_stdlib.h"
-
- int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
- const char *n;
- --- a/src/shared/journal-importer.c
- +++ b/src/shared/journal-importer.c
- @@ -15,6 +15,7 @@
- #include "parse-util.h"
- #include "string-util.h"
- #include "unaligned.h"
- +#include "missing_stdlib.h"
-
- enum {
- IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */
- --- a/src/shared/logs-show.c
- +++ b/src/shared/logs-show.c
- @@ -42,6 +42,7 @@
- #include "time-util.h"
- #include "utf8.h"
- #include "web-util.h"
- +#include "missing_stdlib.h"
-
- /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
- #define PRINT_LINE_THRESHOLD 3
- --- a/src/shared/pager.c
- +++ b/src/shared/pager.c
- @@ -26,6 +26,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "terminal-util.h"
- +#include "missing_stdlib.h"
-
- static pid_t pager_pid = 0;
-
- --- a/src/socket-proxy/socket-proxyd.c
- +++ b/src/socket-proxy/socket-proxyd.c
- @@ -26,6 +26,7 @@
- #include "set.h"
- #include "socket-util.h"
- #include "string-util.h"
- +#include "missing_stdlib.h"
-
- #define BUFFER_SIZE (256 * 1024)
-
- --- a/src/test/test-hexdecoct.c
- +++ b/src/test/test-hexdecoct.c
- @@ -7,6 +7,7 @@
- #include "macro.h"
- #include "random-util.h"
- #include "string-util.h"
- +#include "missing_stdlib.h"
- #include "tests.h"
-
- TEST(hexchar) {
- --- a/src/udev/udev-builtin-path_id.c
- +++ b/src/udev/udev-builtin-path_id.c
- @@ -22,6 +22,7 @@
- #include "sysexits.h"
- #include "udev-builtin.h"
- #include "udev-util.h"
- +#include "missing_stdlib.h"
-
- _printf_(2,3)
- static void path_prepend(char **path, const char *fmt, ...) {
- --- a/src/udev/udev-event.c
- +++ b/src/udev/udev-event.c
- @@ -34,6 +34,7 @@
- #include "udev-util.h"
- #include "udev-watch.h"
- #include "user-util.h"
- +#include "missing_stdlib.h"
-
- typedef struct Spawn {
- sd_device *device;
- --- a/src/udev/udev-rules.c
- +++ b/src/udev/udev-rules.c
- @@ -34,6 +34,7 @@
- #include "udev-util.h"
- #include "user-util.h"
- #include "virt.h"
- +#include "missing_stdlib.h"
-
- #define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
-
|