Fix garbage data in long-format strings 03/235303/2 submit/tizen/20200603.194620 submit/tizen/20200604.180558
authorMichal Bloch <m.bloch@samsung.com>
Tue, 2 Jun 2020 15:56:23 +0000 (17:56 +0200)
committerMichal Bloch <m.bloch@samsung.com>
Wed, 3 Jun 2020 11:13:55 +0000 (13:13 +0200)
Change-Id: Ie271b8ca58f0cc018fb13b306f66f0fdf02af2e4
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
src/shared/logprint.c

index 69284d0..85f2162 100644 (file)
@@ -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