aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-09-17 10:30:39 +0200
committerTobias Brunner <tobias@strongswan.org>2012-09-17 10:30:39 +0200
commitb7c54cf22605439c5fe9565abacd7e3d35ce6dc1 (patch)
tree8b60235b165e8e010025e1447285fef5a715a2d6 /src
parent6d30954ae809fb10427f9d860f76d0a298cb4919 (diff)
downloadstrongswan-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.h11
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;
}