diff -r bbd1da3f538f -r f3108e56b502 src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp --- a/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp Wed Aug 01 04:19:22 2018 -0400 +++ b/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp Thu Aug 02 03:54:51 2018 -0700 @@ -41,13 +41,13 @@ int _cur; void vappend(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0) { - int res = vsnprintf(&_buffer[_cur], BUFFER_LEN - _cur, format, ap); - if (res != -1) { - _cur += res; - } else { + int res = os::vsnprintf(&_buffer[_cur], BUFFER_LEN - _cur, format, ap); + if (res > BUFFER_LEN) { DEBUG_ONLY(warning("buffer too small in LineBuffer");) _buffer[BUFFER_LEN -1] = 0; _cur = BUFFER_LEN; // vsnprintf above should not add to _buffer if we are called again + } else if (res != -1) { + _cur += res; } }