From: Tobias Brunner Date: Mon, 17 Sep 2012 08:30:39 +0000 (+0200) Subject: android: Fix conversion of actual Unicode strings (i.e. bytes!=chars) X-Git-Tag: 5.0.1~97 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b7c54cf22605439c5fe9565abacd7e3d35ce6dc1;p=thirdparty%2Fstrongswan.git android: Fix conversion of actual Unicode strings (i.e. bytes!=chars) --- diff --git a/src/frontends/android/jni/libandroidbridge/android_jni.h b/src/frontends/android/jni/libandroidbridge/android_jni.h index bafd6b72e7..943774e823 100644 --- a/src/frontends/android/jni/libandroidbridge/android_jni.h +++ b/src/frontends/android/jni/libandroidbridge/android_jni.h @@ -91,14 +91,15 @@ static inline bool androidjni_exception_occurred(JNIEnv *env) static inline char *androidjni_convert_jstring(JNIEnv *env, jstring jstr) { char *str = NULL; - jsize len; + jsize bytes, chars; if (jstr) { - len = (*env)->GetStringUTFLength(env, jstr); - str = malloc(len + 1); - (*env)->GetStringUTFRegion(env, jstr, 0, len, str); - str[len] = '\0'; + chars = (*env)->GetStringLength(env, jstr); + bytes = (*env)->GetStringUTFLength(env, jstr); + str = malloc(bytes + 1); + (*env)->GetStringUTFRegion(env, jstr, 0, chars, str); + str[bytes] = '\0'; } return str; }