8007609: WinNTFileSystem_md.c should correctly check value returned from realloc
authorjzavgren
Tue, 19 Feb 2013 16:19:09 +0000
changeset 16008 2734ca906c3e
parent 16007 cf20f016fa94
child 16009 c63e8173a808
8007609: WinNTFileSystem_md.c should correctly check value returned from realloc Reviewed-by: alanb, chegar, dholmes
jdk/src/windows/native/java/io/WinNTFileSystem_md.c
--- a/jdk/src/windows/native/java/io/WinNTFileSystem_md.c	Tue Feb 19 14:12:09 2013 +0000
+++ b/jdk/src/windows/native/java/io/WinNTFileSystem_md.c	Tue Feb 19 16:19:09 2013 +0000
@@ -36,9 +36,7 @@
 #include <windows.h>
 #include <io.h>
 
-#include "jvm.h"
 #include "jni.h"
-#include "jni_util.h"
 #include "io_util.h"
 #include "jlong.h"
 #include "io_util_md.h"
@@ -115,13 +113,15 @@
         DWORD len = (*GetFinalPathNameByHandle_func)(h, result, MAX_PATH, 0);
         if (len >= MAX_PATH) {
             /* retry with a buffer of the right size */
-            result = (WCHAR*)realloc(result, (len+1) * sizeof(WCHAR));
-            if (result != NULL) {
+            WCHAR* newResult = (WCHAR*)realloc(result, (len+1) * sizeof(WCHAR));
+            if (newResult != NULL) {
+                result = newResult;
                 len = (*GetFinalPathNameByHandle_func)(h, result, len, 0);
             } else {
                 len = 0;
             }
         }
+
         if (len > 0) {
             /**
              * Strip prefix (should be \\?\ or \\?\UNC)