From b5ea030d65e9af87a57155bf269fee21a5282bf7 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 10 Dec 2019 11:33:28 +0100 Subject: [PATCH 1/2] id128: introduce ID128_UUID_STRING_MAX for sizing UUID buffers --- src/libsystemd/sd-id128/id128-util.c | 2 +- src/libsystemd/sd-id128/id128-util.h | 4 +++- src/nspawn/nspawn.c | 2 +- src/shared/logs-show.c | 5 +++-- src/test/test-id128.c | 2 +- src/veritysetup/veritysetup-generator.c | 2 +- 6 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/libsystemd/sd-id128/id128-util.c b/src/libsystemd/sd-id128/id128-util.c index 9ffd594ee6..985872b82d 100644 --- a/src/libsystemd/sd-id128/id128-util.c +++ b/src/libsystemd/sd-id128/id128-util.c @@ -11,7 +11,7 @@ #include "io-util.h" #include "stdio-util.h" -char *id128_to_uuid_string(sd_id128_t id, char s[37]) { +char *id128_to_uuid_string(sd_id128_t id, char s[static ID128_UUID_STRING_MAX]) { unsigned n, k = 0; assert(s); diff --git a/src/libsystemd/sd-id128/id128-util.h b/src/libsystemd/sd-id128/id128-util.h index 82a69a77f3..fe0149a8aa 100644 --- a/src/libsystemd/sd-id128/id128-util.h +++ b/src/libsystemd/sd-id128/id128-util.h @@ -8,7 +8,9 @@ #include "hash-funcs.h" #include "macro.h" -char *id128_to_uuid_string(sd_id128_t id, char s[37]); +#define ID128_UUID_STRING_MAX 37 + +char *id128_to_uuid_string(sd_id128_t id, char s[static ID128_UUID_STRING_MAX]); bool id128_is_valid(const char *s) _pure_; diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 9fac326219..d1ad8a37c8 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -2866,7 +2866,7 @@ static int inner_child( FDSet *fds) { _cleanup_free_ char *home = NULL; - char as_uuid[37]; + char as_uuid[ID128_UUID_STRING_MAX]; size_t n_env = 1; const char *envp[] = { "PATH=" DEFAULT_PATH_COMPAT, diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index 95b2e3376e..27b8ccd5e4 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -17,6 +17,7 @@ #include "format-util.h" #include "hashmap.h" #include "hostname-util.h" +#include "id128-util.h" #include "io-util.h" #include "journal-internal.h" #include "json.h" @@ -26,8 +27,8 @@ #include "namespace-util.h" #include "output-mode.h" #include "parse-util.h" -#include "process-util.h" #include "pretty-print.h" +#include "process-util.h" #include "sparse-endian.h" #include "stdio-util.h" #include "string-table.h" @@ -1353,8 +1354,8 @@ int add_matches_for_user_unit(sd_journal *j, const char *unit, uid_t uid) { static int get_boot_id_for_machine(const char *machine, sd_id128_t *boot_id) { _cleanup_close_pair_ int pair[2] = { -1, -1 }; _cleanup_close_ int pidnsfd = -1, mntnsfd = -1, rootfd = -1; + char buf[ID128_UUID_STRING_MAX]; pid_t pid, child; - char buf[37]; ssize_t k; int r; diff --git a/src/test/test-id128.c b/src/test/test-id128.c index 4d7513f6d5..66eedddce8 100644 --- a/src/test/test-id128.c +++ b/src/test/test-id128.c @@ -21,7 +21,7 @@ int main(int argc, char *argv[]) { sd_id128_t id, id2; - char t[33], q[37]; + char t[SD_ID128_STRING_MAX], q[ID128_UUID_STRING_MAX]; _cleanup_free_ char *b = NULL; _cleanup_close_ int fd = -1; int r; diff --git a/src/veritysetup/veritysetup-generator.c b/src/veritysetup/veritysetup-generator.c index f2b74f3dc1..ea1d056600 100644 --- a/src/veritysetup/veritysetup-generator.c +++ b/src/veritysetup/veritysetup-generator.c @@ -166,7 +166,7 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat static int determine_devices(void) { _cleanup_free_ void *m = NULL; sd_id128_t root_uuid, verity_uuid; - char ids[37]; + char ids[ID128_UUID_STRING_MAX]; size_t l; int r; From 5905d7cf5bc8986a7cfe7076d9724c06c79f178f Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 10 Dec 2019 11:52:54 +0100 Subject: [PATCH 2/2] tree-wide: use SD_ID128_STRING_MAX where appropriate --- src/journal-remote/journal-upload-journal.c | 2 +- src/journal/journal-file.c | 2 +- src/journal/sd-journal.c | 2 +- src/libsystemd/sd-bus/sd-bus.c | 2 +- src/nspawn/nspawn.c | 2 +- src/shared/logs-show.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/journal-remote/journal-upload-journal.c b/src/journal-remote/journal-upload-journal.c index 7d7e7384bf..5bfe5acadc 100644 --- a/src/journal-remote/journal-upload-journal.c +++ b/src/journal-remote/journal-upload-journal.c @@ -103,7 +103,7 @@ static ssize_t write_entry(char *buf, size_t size, Uploader *u) { _fallthrough_; case ENTRY_BOOT_ID: { sd_id128_t boot_id; - char sid[33]; + char sid[SD_ID128_STRING_MAX]; r = sd_journal_get_monotonic_usec(u->journal, NULL, &boot_id); if (r < 0) diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c index e1cd080c64..505191999b 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -3056,7 +3056,7 @@ static const char* format_timestamp_safe(char *buf, size_t l, usec_t t) { } void journal_file_print_header(JournalFile *f) { - char a[33], b[33], c[33], d[33]; + char a[SD_ID128_STRING_MAX], b[SD_ID128_STRING_MAX], c[SD_ID128_STRING_MAX], d[SD_ID128_STRING_MAX]; char x[FORMAT_TIMESTAMP_MAX], y[FORMAT_TIMESTAMP_MAX], z[FORMAT_TIMESTAMP_MAX]; struct stat st; char bytes[FORMAT_BYTES_MAX]; diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c index 2b969a6405..358f2fd738 100644 --- a/src/journal/sd-journal.c +++ b/src/journal/sd-journal.c @@ -908,7 +908,7 @@ _public_ int sd_journal_previous_skip(sd_journal *j, uint64_t skip) { _public_ int sd_journal_get_cursor(sd_journal *j, char **cursor) { Object *o; int r; - char bid[33], sid[33]; + char bid[SD_ID128_STRING_MAX], sid[SD_ID128_STRING_MAX]; assert_return(j, -EINVAL); assert_return(!journal_pid_changed(j), -ECHILD); diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c index 058492a83e..b53d4dd854 100644 --- a/src/libsystemd/sd-bus/sd-bus.c +++ b/src/libsystemd/sd-bus/sd-bus.c @@ -2672,7 +2672,7 @@ static int process_builtin(sd_bus *bus, sd_bus_message *m) { r = sd_bus_message_new_method_return(m, &reply); else if (streq_ptr(m->member, "GetMachineId")) { sd_id128_t id; - char sid[33]; + char sid[SD_ID128_STRING_MAX]; r = sd_id128_get_machine(&id); if (r < 0) diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index d1ad8a37c8..00adbcb61a 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -2229,9 +2229,9 @@ static int setup_hostname(void) { static int setup_journal(const char *directory) { _cleanup_free_ char *d = NULL; + char id[SD_ID128_STRING_MAX]; const char *dirname, *p, *q; sd_id128_t this_id; - char id[33]; bool try; int r; diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index 27b8ccd5e4..ce0a4acf9c 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -655,7 +655,7 @@ static int output_export( const size_t highlight[2]) { sd_id128_t boot_id; - char sid[33]; + char sid[SD_ID128_STRING_MAX]; int r; usec_t realtime, monotonic; _cleanup_free_ char *cursor = NULL;