journal/journald-console: fix format-specifier issue
timespec::tv_nsec can have different sizes depending on the host architecture. On x32 in particular, it is 8 bytes long while the long int type is only 4 bytes long. Hence, using ld as a format specifier will trigger a format error. Thus, explicitly cast timespec::tv_nsec to nsec_t and use PRI_NSEC as the format specifier to make sure the sizes for both match.
This commit is contained in:
@@ -72,9 +72,9 @@ void server_forward_console(
|
||||
/* First: timestamp */
|
||||
if (prefix_timestamp()) {
|
||||
assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0);
|
||||
xsprintf(tbuf, "[%5"PRI_TIME".%06ld] ",
|
||||
xsprintf(tbuf, "[%5"PRI_TIME".%06"PRI_NSEC"] ",
|
||||
ts.tv_sec,
|
||||
ts.tv_nsec / 1000);
|
||||
(nsec_t)ts.tv_nsec / 1000);
|
||||
IOVEC_SET_STRING(iovec[n++], tbuf);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user