Skip to content

Commit 644fe0a

Browse files
8302837: Kernel32.cpp array memory release invokes undefined behaviour
Reviewed-by: jlahoda
1 parent 60e6378 commit 644fe0a

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/jdk.internal.le/windows/native/lible/Kernel32.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ JNIEXPORT void JNICALL Java_jdk_internal_org_jline_terminal_impl_jna_win_Kernel3
461461
INPUT_RECORD *buffer = new INPUT_RECORD[in_nLength];
462462
DWORD numberOfEventsRead;
463463
if (!ReadConsoleInputW(h, buffer, in_nLength, &numberOfEventsRead)) {
464-
delete buffer;
464+
delete[] buffer;
465465
DWORD error = GetLastError();
466466
jobject exc = env->NewObject(lastErrorExceptionClass,
467467
lastErrorExceptionConstructor,
@@ -565,7 +565,7 @@ JNIEXPORT void JNICALL Java_jdk_internal_org_jline_terminal_impl_jna_win_Kernel3
565565
env->SetObjectArrayElement(out_lpBuffer, i, record);
566566
}
567567
env->SetIntField(out_lpNumberOfEventsRead, intByReferenceValue, numberOfEventsRead);
568-
delete buffer;
568+
delete[] buffer;
569569
}
570570

571571
/*
@@ -657,7 +657,7 @@ JNIEXPORT void JNICALL Java_jdk_internal_org_jline_terminal_impl_jna_win_Kernel3
657657
env->GetCharArrayRegion(in_lpBuffer, 0, in_nNumberOfCharsToWrite, chars);
658658
DWORD written;
659659
if (!WriteConsoleW(h, chars, in_nNumberOfCharsToWrite, &written, NULL)) {
660-
delete chars;
660+
delete[] chars;
661661
DWORD error = GetLastError();
662662
jobject exc = env->NewObject(lastErrorExceptionClass,
663663
lastErrorExceptionConstructor,
@@ -667,7 +667,7 @@ JNIEXPORT void JNICALL Java_jdk_internal_org_jline_terminal_impl_jna_win_Kernel3
667667
}
668668

669669
env->SetIntField(out_lpNumberOfCharsWritten, intByReferenceValue, written);
670-
delete chars;
670+
delete[] chars;
671671
}
672672

673673
/*

0 commit comments

Comments
 (0)