From e9f600f2fb4b0df55c7a8fb4b4d09f9979997223 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 26 Oct 2012 14:55:03 +0200 Subject: [PATCH] journal: fix parsing of monotonic kernel timestamps --- TODO | 2 -- src/journal/journald-kmsg.c | 7 +++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/TODO b/TODO index 0faa58d03..d82fca02e 100644 --- a/TODO +++ b/TODO @@ -13,8 +13,6 @@ Bugfixes: * properly handle .mount unit state tracking when two mount points are stacked one on top of another on the exact same mount point. -* _SOURCE_MONOTONIC_TIMESTAMP entries from the kernel seem to be off by 1000000 - F18: * Retest multi-seat diff --git a/src/journal/journald-kmsg.c b/src/journal/journald-kmsg.c index 548f65311..86786cef5 100644 --- a/src/journal/journald-kmsg.c +++ b/src/journal/journald-kmsg.c @@ -109,7 +109,7 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { char *message = NULL, *syslog_priority = NULL, *syslog_pid = NULL, *syslog_facility = NULL, *syslog_identifier = NULL, *source_time = NULL; int priority, r; unsigned n = 0, z = 0, j; - usec_t usec; + unsigned long long usec; char *identifier = NULL, *pid = NULL, *e, *f, *k; uint64_t serial; size_t pl; @@ -171,7 +171,7 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { e = f; *e = 0; - r = parse_usec(p, &usec); + r = safe_atollu(p, &usec); if (r < 0) return; @@ -263,8 +263,7 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { } } - if (asprintf(&source_time, "_SOURCE_MONOTONIC_TIMESTAMP=%llu", - (unsigned long long) usec) >= 0) + if (asprintf(&source_time, "_SOURCE_MONOTONIC_TIMESTAMP=%llu", usec) >= 0) IOVEC_SET_STRING(iovec[n++], source_time); IOVEC_SET_STRING(iovec[n++], "_TRANSPORT=kernel"); -- 2.30.2