From 1433f34960fad06013c51af03b39f2078de6951f Mon Sep 17 00:00:00 2001 From: Peter Goodman Date: Wed, 13 Dec 2017 22:46:20 -0500 Subject: [PATCH] Makeing 100% sure that the format_bufs are NUL-terminated. --- src/lib/Stream.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lib/Stream.c b/src/lib/Stream.c index f3425b1..18cf673 100644 --- a/src/lib/Stream.c +++ b/src/lib/Stream.c @@ -497,9 +497,10 @@ get_length_char: } common_stream_int: + format_buf[i] = '\0'; DeepState_StreamUnpack(stream, extract); _DeepState_StreamInt(level, format_buf, stream->unpack, - &(stream->value.as_uint64)); + &(stream->value.as_uint64)); break; /* Floating point, scientific notation, etc. */ @@ -517,13 +518,17 @@ get_length_char: stream->value.as_fp64 = va_arg(args, double); } DeepState_StreamUnpack(stream, 'd'); + format_buf[i] = '\0'; _DeepState_StreamFloat(level, format_buf, stream->unpack, &(stream->value.as_fp64)); break; - case 's': - _DeepState_StreamString(level, format_buf, va_arg(args, const char *)); + case 's': { + const char *str = va_arg(args, const char *); + format_buf[i] = '\0'; + _DeepState_StreamString(level, format_buf, str); break; + } default: DeepState_Abandon("Unsupported format specifier.");