fix: OOB on chinese char (#4681)

* fix StringIndexOutOfBoundsException

when `log` contain `chinese` char

* lost code

* Update stdio_is.c

* Update stdio_is.c
This commit is contained in:
Color_yr 2023-10-19 19:16:41 +08:00 committed by GitHub
parent 01e1fdf177
commit 5a285c811c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -137,7 +137,7 @@ JNIEXPORT void JNICALL Java_net_kdt_pojavlaunch_utils_JREUtils_setupExitTrap(JNI
JNIEXPORT void JNICALL Java_net_kdt_pojavlaunch_Logger_appendToLog(JNIEnv *env, __attribute((unused)) jclass clazz, jstring text) {
jsize appendStringLength = (*env)->GetStringUTFLength(env, text);
char newChars[appendStringLength+2];
(*env)->GetStringUTFRegion(env, text, 0, appendStringLength, newChars);
(*env)->GetStringUTFRegion(env, text, 0, (*env)->GetStringLength(env, text), newChars);
newChars[appendStringLength] = '\n';
newChars[appendStringLength+1] = 0;
if(recordBuffer(newChars, appendStringLength+1) && logListener != NULL) {
@ -154,4 +154,4 @@ Java_net_kdt_pojavlaunch_Logger_setLogListener(JNIEnv *env, __attribute((unused)
logListener = (*env)->NewGlobalRef(env, log_listener);
}
if(logListenerLocal != NULL) (*env)->DeleteGlobalRef(env, logListenerLocal);
}
}