From 31304afd2c731929d95e8e5f1465e78a55da1f8b Mon Sep 17 00:00:00 2001 From: Michal Bloch Date: Tue, 2 Jun 2020 17:56:23 +0200 Subject: [PATCH] Fix garbage data in long-format strings Change-Id: Ie271b8ca58f0cc018fb13b306f66f0fdf02af2e4 Signed-off-by: Michal Bloch --- src/shared/logprint.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/shared/logprint.c b/src/shared/logprint.c index 69284d0..85f2162 100644 --- a/src/shared/logprint.c +++ b/src/shared/logprint.c @@ -1099,8 +1099,17 @@ char *log_format_log_line( inline void append_line(const char *line, size_t len) { add_prefix(); - strncat(p, line, SPACE_LEFT < len ? SPACE_LEFT : len); + + /* The message may contain garbage at the end. + * In particular, pipe messages get artificially + * lengthened for alignment purposes which can + * leave garbage in those extra bytes. */ + len = strnlen(line, len); + + len = min_int(SPACE_LEFT, len); + strncat(p, line, len); p += len; + add_suffix(); } #undef SPACE_LEFT -- 2.7.4