From 5a285c811c100c36f960eb3145cc3c3d7d935067 Mon Sep 17 00:00:00 2001 From: Color_yr <402067010@qq.com> Date: Thu, 19 Oct 2023 19:16:41 +0800 Subject: [PATCH] fix: OOB on chinese char (#4681) * fix StringIndexOutOfBoundsException when `log` contain `chinese` char * lost code * Update stdio_is.c * Update stdio_is.c --- app_pojavlauncher/src/main/jni/stdio_is.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app_pojavlauncher/src/main/jni/stdio_is.c b/app_pojavlauncher/src/main/jni/stdio_is.c index d768a8313..671f0242a 100644 --- a/app_pojavlauncher/src/main/jni/stdio_is.c +++ b/app_pojavlauncher/src/main/jni/stdio_is.c @@ -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); -} \ No newline at end of file +}