chiark / gitweb /
journald: Fix off-by-one error in "Missed X kernel messages" warning
[elogind.git] / src / journal / journald-native.c
index d73280c8cfe4b9bb418663dca6c5c271a5937882..ac2d0ba148c10c8ddf3c25e1889fc028af54d62a 100644 (file)
@@ -108,8 +108,7 @@ void server_process_native_message(
                         /* Entry separator */
 
                         if (entry_size + n + 1 > ENTRY_SIZE_MAX) { /* data + separators + trailer */
-                                log_debug("Entry is too big with %u properties and %zu bytes, ignoring.",
-                                          n, entry_size);
+                                log_debug("Entry is too big with %u properties and %zu bytes, ignoring.", n, entry_size);
                                 continue;
                         }
 
@@ -134,8 +133,7 @@ void server_process_native_message(
                 /* A property follows */
 
                 /* n received properties, +1 for _TRANSPORT */
-                if (!GREEDY_REALLOC(iovec, m, n + 1 + N_IOVEC_META_FIELDS +
-                                              !!object_pid * N_IOVEC_OBJECT_FIELDS)) {
+                if (!GREEDY_REALLOC(iovec, m, n + 1 + N_IOVEC_META_FIELDS + !!object_pid * N_IOVEC_OBJECT_FIELDS)) {
                         log_oom();
                         break;
                 }
@@ -153,8 +151,8 @@ void server_process_native_message(
                                  * field */
                                 iovec[n].iov_base = (char*) p;
                                 iovec[n].iov_len = l;
-                                n++;
                                 entry_size += iovec[n].iov_len;
+                                n++;
 
                                 /* We need to determine the priority
                                  * of this entry for the rate limiting
@@ -223,7 +221,7 @@ void server_process_native_message(
                         l = le64toh(l_le);
 
                         if (l > DATA_SIZE_MAX) {
-                                log_debug("Received binary data block of %zu bytes is too large, ignoring.", l);
+                                log_debug("Received binary data block of %"PRIu64" bytes is too large, ignoring.", l);
                                 break;
                         }
 
@@ -246,8 +244,8 @@ void server_process_native_message(
                         if (valid_user_field(p, e - p, false)) {
                                 iovec[n].iov_base = k;
                                 iovec[n].iov_len = (e - p) + 1 + l;
-                                n++;
                                 entry_size += iovec[n].iov_len;
+                                n++;
                         } else
                                 free(k);