]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
journal: use STRLEN() and xsprintf()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 1 May 2024 20:40:00 +0000 (05:40 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 1 May 2024 21:34:01 +0000 (06:34 +0900)
No functional change, just refactoring.

src/journal/journald-audit.c
src/journal/journald-kmsg.c
src/journal/journald-server.c
src/journal/journald-server.h
src/journal/journald-socket.c
src/journal/journald-syslog.c

index 6d91e6b246d92cd5fe70c40a29b13cfa8b15f710..d49283d225cab52681fd3f15a3b554047c2d7193 100644 (file)
@@ -335,8 +335,8 @@ void process_audit_string(Server *s, int type, const char *data, size_t size) {
         size_t n = 0, z;
         uint64_t seconds, msec, id;
         const char *p, *type_name;
-        char id_field[sizeof("_AUDIT_ID=") + DECIMAL_STR_MAX(uint64_t)],
-                type_field[sizeof("_AUDIT_TYPE=") + DECIMAL_STR_MAX(int)];
+        char id_field[STRLEN("_AUDIT_ID=") + DECIMAL_STR_MAX(uint64_t)],
+                type_field[STRLEN("_AUDIT_TYPE=") + DECIMAL_STR_MAX(int)];
         struct iovec iovec[N_IOVEC_META_FIELDS + 7 + N_IOVEC_AUDIT_FIELDS];
         char *m, *type_field_name;
         int k;
@@ -374,10 +374,10 @@ void process_audit_string(Server *s, int type, const char *data, size_t size) {
 
         iovec[n++] = IOVEC_MAKE_STRING("_TRANSPORT=audit");
 
-        sprintf(type_field, "_AUDIT_TYPE=%i", type);
+        xsprintf(type_field, "_AUDIT_TYPE=%i", type);
         iovec[n++] = IOVEC_MAKE_STRING(type_field);
 
-        sprintf(id_field, "_AUDIT_ID=%" PRIu64, id);
+        xsprintf(id_field, "_AUDIT_ID=%" PRIu64, id);
         iovec[n++] = IOVEC_MAKE_STRING(id_field);
 
         assert_cc(4 == LOG_FAC(LOG_AUTH));
index 28d48808d08d74ad053d5be474a05aa5aca0ba75..a5e1715b13cc66e1b8e11364051f62a1eaa091ba 100644 (file)
@@ -98,7 +98,7 @@ static bool is_us(const char *identifier, const char *pid) {
 
 void dev_kmsg_record(Server *s, char *p, size_t l) {
 
-        _cleanup_free_ char *message = NULL, *syslog_priority = NULL, *syslog_pid = NULL, *syslog_facility = NULL, *syslog_identifier = NULL, *source_time = NULL, *identifier = NULL, *pid = NULL;
+        _cleanup_free_ char *message = NULL, *syslog_pid = NULL, *syslog_identifier = NULL, *identifier = NULL, *pid = NULL;
         struct iovec iovec[N_IOVEC_META_FIELDS + 7 + N_IOVEC_KERNEL_FIELDS + 2 + N_IOVEC_UDEV_FIELDS];
         char *kernel_device = NULL;
         unsigned long long usec;
@@ -253,16 +253,19 @@ void dev_kmsg_record(Server *s, char *p, size_t l) {
                 }
         }
 
-        if (asprintf(&source_time, "_SOURCE_MONOTONIC_TIMESTAMP=%llu", usec) >= 0)
-                iovec[n++] = IOVEC_MAKE_STRING(source_time);
+        char source_time[STRLEN("_SOURCE_MONOTONIC_TIMESTAMP=") + DECIMAL_STR_MAX(unsigned long long)];
+        xsprintf(source_time, "_SOURCE_MONOTONIC_TIMESTAMP=%llu", usec);
+        iovec[n++] = IOVEC_MAKE_STRING(source_time);
 
         iovec[n++] = IOVEC_MAKE_STRING("_TRANSPORT=kernel");
 
-        if (asprintf(&syslog_priority, "PRIORITY=%i", priority & LOG_PRIMASK) >= 0)
-                iovec[n++] = IOVEC_MAKE_STRING(syslog_priority);
+        char syslog_priority[STRLEN("PRIORITY=") + DECIMAL_STR_MAX(int)];
+        xsprintf(syslog_priority, "PRIORITY=%i", priority & LOG_PRIMASK);
+        iovec[n++] = IOVEC_MAKE_STRING(syslog_priority);
 
-        if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0)
-                iovec[n++] = IOVEC_MAKE_STRING(syslog_facility);
+        char syslog_facility[STRLEN("SYSLOG_FACILITY=") + DECIMAL_STR_MAX(int)];
+        xsprintf(syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority));
+        iovec[n++] = IOVEC_MAKE_STRING(syslog_facility);
 
         if (LOG_FAC(priority) == LOG_KERN)
                 iovec[n++] = IOVEC_MAKE_STRING("SYSLOG_IDENTIFIER=kernel");
index dfad063e47ec176f30e05a5d22dba6462ddb45eb..f4156a897cb1aee830c16afd66e57d6a7d085db7 100644 (file)
@@ -1070,7 +1070,7 @@ static void server_dispatch_message_real(
                 int priority,
                 pid_t object_pid) {
 
-        char source_time[sizeof("_SOURCE_REALTIME_TIMESTAMP=") + DECIMAL_STR_MAX(usec_t)];
+        char source_time[STRLEN("_SOURCE_REALTIME_TIMESTAMP=") + DECIMAL_STR_MAX(usec_t)];
         _unused_ _cleanup_free_ char *cmdline1 = NULL, *cmdline2 = NULL;
         uid_t journal_uid;
         ClientContext *o;
@@ -1150,7 +1150,7 @@ static void server_dispatch_message_real(
         assert(n <= m);
 
         if (tv) {
-                sprintf(source_time, "_SOURCE_REALTIME_TIMESTAMP=" USEC_FMT, timeval_load(tv));
+                xsprintf(source_time, "_SOURCE_REALTIME_TIMESTAMP=" USEC_FMT, timeval_load(tv));
                 iovec[n++] = IOVEC_MAKE_STRING(source_time);
         }
 
index b63028e8c2c71f005f7631a4969a0bf1c6362763..e52c7a55e60c385fc2cba5fd34a8de51b6f9ac11 100644 (file)
@@ -162,8 +162,8 @@ struct Server {
         bool sent_notify_ready:1;
         bool sync_scheduled:1;
 
-        char machine_id_field[sizeof("_MACHINE_ID=") + 32];
-        char boot_id_field[sizeof("_BOOT_ID=") + 32];
+        char machine_id_field[STRLEN("_MACHINE_ID=") + SD_ID128_STRING_MAX];
+        char boot_id_field[STRLEN("_BOOT_ID=") + SD_ID128_STRING_MAX];
         char *hostname_field;
         char *namespace_field;
         char *runtime_directory;
index 24c8f05d45b9ef4997658cf9b9f328cd729ac57d..25e56de6f3f513e32f0ea09e361843fa03518ec8 100644 (file)
@@ -141,7 +141,7 @@ int server_forward_socket(
 
         /* Synthesise __REALTIME_TIMESTAMP as the last argument so systemd-journal-upload can receive these
          * export messages. */
-        char buf[sizeof("__REALTIME_TIMESTAMP=") + DECIMAL_STR_MAX(usec_t) + 2];
+        char buf[STRLEN("__REALTIME_TIMESTAMP=") + DECIMAL_STR_MAX(usec_t) + 2];
         xsprintf(buf, "__REALTIME_TIMESTAMP="USEC_FMT"\n\n", now(CLOCK_REALTIME));
         iov[iov_idx++] = IOVEC_MAKE_STRING(buf);
 
index f6accb5b44a8ac2d9da0320238da7effb5a90dfd..4539722b2037132c9fbf5f224f10a5ed2408f73b 100644 (file)
@@ -314,8 +314,8 @@ void server_process_syslog_message(
                 const char *label,
                 size_t label_len) {
 
-        char *t, syslog_priority[sizeof("PRIORITY=") + DECIMAL_STR_MAX(int)],
-                 syslog_facility[sizeof("SYSLOG_FACILITY=") + DECIMAL_STR_MAX(int)];
+        char *t, syslog_priority[STRLEN("PRIORITY=") + DECIMAL_STR_MAX(int)],
+                 syslog_facility[STRLEN("SYSLOG_FACILITY=") + DECIMAL_STR_MAX(int)];
         const char *msg, *syslog_ts, *a;
         _cleanup_free_ char *identifier = NULL, *pid = NULL,
                 *dummy = NULL, *msg_msg = NULL, *msg_raw = NULL;