diff options
Diffstat (limited to 'src/journal-remote/journal-upload-journal.c')
-rw-r--r-- | src/journal-remote/journal-upload-journal.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/journal-remote/journal-upload-journal.c b/src/journal-remote/journal-upload-journal.c index 3991dcb7d2..be39f7c047 100644 --- a/src/journal-remote/journal-upload-journal.c +++ b/src/journal-remote/journal-upload-journal.c @@ -34,7 +34,8 @@ static ssize_t write_entry(char *buf, size_t size, Uploader *u) { r = snprintf(buf + pos, size - pos, "__CURSOR=%s\n", u->current_cursor); - if (pos + r > size) + assert(r >= 0); + if ((size_t) r > size - pos) /* not enough space */ return pos; @@ -58,7 +59,8 @@ static ssize_t write_entry(char *buf, size_t size, Uploader *u) { r = snprintf(buf + pos, size - pos, "__REALTIME_TIMESTAMP="USEC_FMT"\n", realtime); - if (r + pos > size) + assert(r >= 0); + if ((size_t) r > size - pos) /* not enough space */ return pos; @@ -83,7 +85,8 @@ static ssize_t write_entry(char *buf, size_t size, Uploader *u) { r = snprintf(buf + pos, size - pos, "__MONOTONIC_TIMESTAMP="USEC_FMT"\n", monotonic); - if (r + pos > size) + assert(r >= 0); + if ((size_t) r > size - pos) /* not enough space */ return pos; @@ -108,7 +111,8 @@ static ssize_t write_entry(char *buf, size_t size, Uploader *u) { r = snprintf(buf + pos, size - pos, "_BOOT_ID=%s\n", sd_id128_to_string(boot_id, sid)); - if (r + pos > size) + assert(r >= 0); + if ((size_t) r > size - pos) /* not enough space */ return pos; @@ -180,10 +184,9 @@ static ssize_t write_entry(char *buf, size_t size, Uploader *u) { size_t len; c = memchr(u->field_data, '=', u->field_length); - if (!c || c == u->field_data) { - log_error("Invalid field."); - return -EINVAL; - } + if (!c || c == u->field_data) + return log_error_errno(SYNTHETIC_ERRNO(EINVAL), + "Invalid field."); len = c - (const char*)u->field_data; |