From 9fd49e6dde7df9e5f98d155472ac76619b493235 Mon Sep 17 00:00:00 2001 From: Volker Birk Date: Sat, 22 Aug 2015 14:02:23 +0200 Subject: [PATCH] bugfix: strlen --- src/jniutils.cc | 11 +++++++---- test/Makefile | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/jniutils.cc b/src/jniutils.cc index 30c3c4d..17029bb 100644 --- a/src/jniutils.cc +++ b/src/jniutils.cc @@ -169,6 +169,9 @@ namespace pEp { char *to_string(JNIEnv *env, jbyteArray str) { + if (str == NULL) + return NULL; + jboolean isCopy; jbyte *b = env->GetByteArrayElements(str, &isCopy); char *_str = strndup((char *)b, (size_t)env->GetArrayLength(str)); @@ -343,13 +346,13 @@ namespace pEp { pEp_identity *ident = new_identity(NULL, NULL, NULL, NULL); ident->address = _getStringField(env, classname, obj, "address"); - ident->address_size = strlen(ident->address); + ident->address_size = ident->address ?strlen(ident->address) : 0; ident->fpr = _getStringField(env, classname, obj, "fpr"); - ident->fpr_size = strlen(ident->fpr); + ident->fpr_size = ident->fpr ? strlen(ident->fpr) : 0; ident->user_id = _getStringField(env, classname, obj, "user_id"); - ident->user_id_size = strlen(ident->user_id); + ident->user_id_size = ident->user_id ? strlen(ident->user_id) : 0; ident->username = _getStringField(env, classname, obj, "username"); - ident->username_size = strlen(ident->username); + ident->username_size = ident->username ? strlen(ident->username) : 0; jfieldID comm_type_id = getFieldID(env, classname, "comm_type", "I"); ident->comm_type = (PEP_comm_type) (int) env->GetIntField(obj, comm_type_id); diff --git a/test/Makefile b/test/Makefile index c36119e..87b0108 100644 --- a/test/Makefile +++ b/test/Makefile @@ -11,3 +11,4 @@ test: Testing.class clean: rm -f *.class + rm -f *.log