From 3aeb2d1a514c708844cbc60aaa6f0c01eba96a00 Mon Sep 17 00:00:00 2001 From: Alex Menkov Date: Fri, 13 Mar 2020 12:25:25 -0700 Subject: [PATCH] 8217441: Failure of ::realloc() should be handled correctly in sawindbg.cpp Reviewed-by: cjplummer, sspitsyn --- src/jdk.hotspot.agent/windows/native/libsaproc/sawindbg.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/jdk.hotspot.agent/windows/native/libsaproc/sawindbg.cpp b/src/jdk.hotspot.agent/windows/native/libsaproc/sawindbg.cpp index 8748dd163ce..e95dd065050 100644 --- a/src/jdk.hotspot.agent/windows/native/libsaproc/sawindbg.cpp +++ b/src/jdk.hotspot.agent/windows/native/libsaproc/sawindbg.cpp @@ -312,11 +312,13 @@ STDMETHODIMP SAOutputCallbacks::Output(THIS_ } strcpy(m_msgBuffer, msg); } else { - m_msgBuffer = (char*) realloc(m_msgBuffer, len + strlen(m_msgBuffer)); - if (m_msgBuffer == 0) { + char* newBuffer = (char*)realloc(m_msgBuffer, len + strlen(m_msgBuffer)); + if (newBuffer == nullptr) { + // old m_msgBuffer buffer is still valid fprintf(stderr, "out of memory debugger output!\n"); return S_FALSE; } + m_msgBuffer = newBuffer; strcat(m_msgBuffer, msg); } return S_OK;