diff options
author | Tobias Brunner <tobias@strongswan.org> | 2012-09-17 10:30:39 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2012-09-17 10:30:39 +0200 |
commit | b7c54cf22605439c5fe9565abacd7e3d35ce6dc1 (patch) | |
tree | 8b60235b165e8e010025e1447285fef5a715a2d6 /src | |
parent | 6d30954ae809fb10427f9d860f76d0a298cb4919 (diff) | |
download | strongswan-b7c54cf22605439c5fe9565abacd7e3d35ce6dc1.tar.bz2 strongswan-b7c54cf22605439c5fe9565abacd7e3d35ce6dc1.tar.xz |
android: Fix conversion of actual Unicode strings (i.e. bytes!=chars)
Diffstat (limited to 'src')
-rw-r--r-- | src/frontends/android/jni/libandroidbridge/android_jni.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/frontends/android/jni/libandroidbridge/android_jni.h b/src/frontends/android/jni/libandroidbridge/android_jni.h index bafd6b72e..943774e82 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; } |