From 03d1319b12b073979b900ebea72e7e0bc8bb8b9c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Thu, 24 May 2018 08:37:47 +0200 Subject: [PATCH] shared/logs-show: be more careful before using a _SOURCE_REALTIME_TIMESTAMP entry journalctl -o short would display those entries, but journalctl -o short-full would refuse. If the entry is bad, just fall back to the receive-side realtime timestamp like we would if it was completely missing. --- src/shared/logs-show.c | 4 +--- .../crash-5a8f03d4c3a46fcded39527084f437e8e4b54b76 | Bin 0 -> 7675 bytes 2 files changed, 1 insertion(+), 3 deletions(-) create mode 100644 test/fuzz-regressions/fuzz-journal-remote/crash-5a8f03d4c3a46fcded39527084f437e8e4b54b76 diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index 401f363..739af39 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -293,10 +293,9 @@ static int output_timestamp_realtime(FILE *f, sd_journal *j, OutputMode mode, Ou assert(f); assert(j); - r = -ENXIO; if (realtime) r = safe_atou64(realtime, &x); - if (r < 0) + if (!realtime || r < 0 || !VALID_REALTIME(x)) r = sd_journal_get_realtime_usec(j, &x); if (r < 0) return log_error_errno(r, "Failed to get realtime timestamp: %m"); @@ -417,7 +416,6 @@ static int output_short( sd_journal_set_data_threshold(j, flags & (OUTPUT_SHOW_ALL|OUTPUT_FULL_WIDTH) ? 0 : PRINT_CHAR_THRESHOLD + 1); JOURNAL_FOREACH_DATA_RETVAL(j, data, length, r) { - r = parse_fieldv(data, length, fields, ELEMENTSOF(fields)); if (r < 0) return r; diff --git a/test/fuzz-regressions/fuzz-journal-remote/crash-5a8f03d4c3a46fcded39527084f437e8e4b54b76 b/test/fuzz-regressions/fuzz-journal-remote/crash-5a8f03d4c3a46fcded39527084f437e8e4b54b76 new file mode 100644 index 0000000000000000000000000000000000000000..e6a7316805d348191e5cc0238b282f543a361470 GIT binary patch literal 7675 zcmeHMQE%He5Z<$YMZ0bf?Tbl?lE`@)>Nrj!)V31IUY9|wCQ{|gIY zJI0d2L7cYsg4ISO)5p6bL*Dn@iOTcNC`scaoQA&iT@yII!Wm7VbUI?hjB6tryr)LZ+~wbCQ+P3!{g9xq{nG5-p}{iov23=e<6u>yMtl07j=`c zIZBgex)TkWog^MKFzvLx-wm^x>+Jm7tX4%1w#o%Rl+^_WvNAe>KNpq`{OOnm zFJHhVED9kMR9uXvU}y~{X&^Bi{dO_F!URh15@LIV8wSRu}v(WIZ;DPH#KEeXC zM!rA)>bE-w(V$DK?knzaQwUyi$8hbdB2Yf#fiO;>eJ&gML7WZ;?S3~rc{{zB6lc|9 zWe;KQc!7gGyw*(PQPSxy3lB!027==5(7i1zZ;y@}fhzA8sA7dcbsj*Vo@TQpyt-|E zB|mdlmea@GJVM*U@8FS#u{|{>V2jstAadde{X9Ddo`Fk_t1Q406?^6Or{86DU>PA8 za4vyu=6ry@dY(<70{AlMOF)=#U9qRQmB6!nM*M*;;~bM-ltAc#Nl2!l%HdKkxP->E z=FOZ`EP5F(rJw$hEoJ=`;ic{eFK-2SAy@q8d7yv!b3R`~qFF9Lof2Ef!P*vAMO#Pv z1-fRH|Afe$^k{q3ug{=N23UFG^a6WTi0`rW4C*EHjChTlV%WRK_-)^u&K+wwG)NB$ zHoQ#6KjI563e|)R^4aDi7?jHXu1LpVSc)2p*=RA-4SKVF1Q!L&(GQQ1!8mNSIv8J4 zG$|nHAtZo*>jNQO54mNxJ#2^9IqeIyosIBfaX$$7D?k97^yv_|wGyM1cAT}Ww7-#+ zu9mO#i{(Y9M3Hl6(TSqw(^vY76`hsnJt7Qe7eF(hZS@g;64pKYR|gO#ss?dLT%`ln zFbo8PN)5H3opIC4xgoQVP?;!$In_|nC;iqQd=UA7Ex7S_z#Hgi7@*W(tExJK6*Mcd zBI@81&>v&SUdCcLj+{gn@t!h$bP*8}36fA@Oid(Hgujg^?_nd3{v^eh=tQ_bJic+< zwV)u_2ny_S6x?|9`eq%UO+AEdYuj6&k+-$&*IL_d4?q4lhaVr+zW!Qr(e`xZGmZhb y8EBh)0M@0v>R_qzV_3Vbv!b!+2=o=DHR(4 literal 0 HcmV?d00001 -- 2.7.4