# HG changeset patch # User pchelko # Date 1376482648 -14400 # Node ID 0b4d21558b32ffd87f61337379daf45192ecfbc3 # Parent 9dc631273af7ab1253511779eac583948c3f6d1d 8013454: [parfait] Memory leak in jdk/src/windows/native/sun/windows/awt_Cursor.cpp 8012079: [parfait] possible null pointer dereference in jdk/src/windows/native/sun/windows/awt_Font.cpp Reviewed-by: art, serb diff -r 9dc631273af7 -r 0b4d21558b32 jdk/src/windows/native/sun/windows/awt_Cursor.cpp --- a/jdk/src/windows/native/sun/windows/awt_Cursor.cpp Tue Aug 13 15:49:37 2013 -0700 +++ b/jdk/src/windows/native/sun/windows/awt_Cursor.cpp Wed Aug 14 16:17:28 2013 +0400 @@ -391,9 +391,16 @@ DASSERT(hCursor); - AwtCursor::setPData(self, ptr_to_jlong(new AwtCursor(env, hCursor, self, xHotSpot, - yHotSpot, nW, nH, nSS, cols, - (BYTE *)andMaskPtr))); + try { + AwtCursor::setPData(self, ptr_to_jlong(new AwtCursor(env, hCursor, self, xHotSpot, + yHotSpot, nW, nH, nSS, cols, + (BYTE *)andMaskPtr))); + } catch (...) { + if (cols) { + delete[] cols; + } + throw; + } CATCH_BAD_ALLOC; } diff -r 9dc631273af7 -r 0b4d21558b32 jdk/src/windows/native/sun/windows/awt_Font.cpp --- a/jdk/src/windows/native/sun/windows/awt_Font.cpp Tue Aug 13 15:49:37 2013 -0700 +++ b/jdk/src/windows/native/sun/windows/awt_Font.cpp Wed Aug 14 16:17:28 2013 +0400 @@ -510,6 +510,11 @@ jobject font = env->GetObjectField(fontMetrics, AwtFont::fontID); AwtFont* awtFont = AwtFont::GetFont(env, font); + if (!awtFont) { + /* failed to get font */ + return; + } + HDC hDC = ::GetDC(0); DASSERT(hDC != NULL);