8007609: WinNTFileSystem_md.c should correctly check value returned from realloc
Reviewed-by: alanb, chegar, dholmes
This commit is contained in:
parent
117010c6ec
commit
8d2a55d5b7
@ -36,9 +36,7 @@
|
|||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <io.h>
|
#include <io.h>
|
||||||
|
|
||||||
#include "jvm.h"
|
|
||||||
#include "jni.h"
|
#include "jni.h"
|
||||||
#include "jni_util.h"
|
|
||||||
#include "io_util.h"
|
#include "io_util.h"
|
||||||
#include "jlong.h"
|
#include "jlong.h"
|
||||||
#include "io_util_md.h"
|
#include "io_util_md.h"
|
||||||
@ -115,13 +113,15 @@ static WCHAR* getFinalPath(const WCHAR *path)
|
|||||||
DWORD len = (*GetFinalPathNameByHandle_func)(h, result, MAX_PATH, 0);
|
DWORD len = (*GetFinalPathNameByHandle_func)(h, result, MAX_PATH, 0);
|
||||||
if (len >= MAX_PATH) {
|
if (len >= MAX_PATH) {
|
||||||
/* retry with a buffer of the right size */
|
/* retry with a buffer of the right size */
|
||||||
result = (WCHAR*)realloc(result, (len+1) * sizeof(WCHAR));
|
WCHAR* newResult = (WCHAR*)realloc(result, (len+1) * sizeof(WCHAR));
|
||||||
if (result != NULL) {
|
if (newResult != NULL) {
|
||||||
|
result = newResult;
|
||||||
len = (*GetFinalPathNameByHandle_func)(h, result, len, 0);
|
len = (*GetFinalPathNameByHandle_func)(h, result, len, 0);
|
||||||
} else {
|
} else {
|
||||||
len = 0;
|
len = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len > 0) {
|
if (len > 0) {
|
||||||
/**
|
/**
|
||||||
* Strip prefix (should be \\?\ or \\?\UNC)
|
* Strip prefix (should be \\?\ or \\?\UNC)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user