diff --git a/libs/lpac-jni/src/main/jni/lpac-jni/interface-wrapper.c b/libs/lpac-jni/src/main/jni/lpac-jni/interface-wrapper.c index 21b7ba4..9059171 100644 --- a/libs/lpac-jni/src/main/jni/lpac-jni/interface-wrapper.c +++ b/libs/lpac-jni/src/main/jni/lpac-jni/interface-wrapper.c @@ -73,7 +73,7 @@ apdu_interface_transmit(struct euicc_ctx *ctx, uint8_t **rx, uint32_t *rx_len, c method_apdu_transmit, txArr); LPAC_JNI_EXCEPTION_RETURN; *rx_len = (*env)->GetArrayLength(env, ret); - *rx = malloc(*rx_len * sizeof(uint8_t)); + *rx = calloc(*rx_len, sizeof(uint8_t)); (*env)->GetByteArrayRegion(env, ret, 0, *rx_len, *rx); (*env)->DeleteLocalRef(env, txArr); (*env)->DeleteLocalRef(env, ret); @@ -106,7 +106,7 @@ http_interface_transmit(struct euicc_ctx *ctx, const char *url, uint32_t *rcode, *rcode = (*env)->GetIntField(env, ret, field_resp_rcode); jbyteArray rxArr = (jbyteArray) (*env)->GetObjectField(env, ret, field_resp_data); *rx_len = (*env)->GetArrayLength(env, rxArr); - *rx = malloc(*rx_len * sizeof(uint8_t)); + *rx = calloc(*rx_len, sizeof(uint8_t)); (*env)->GetByteArrayRegion(env, rxArr, 0, *rx_len, *rx); (*env)->DeleteLocalRef(env, txArr); (*env)->DeleteLocalRef(env, rxArr); diff --git a/libs/lpac-jni/src/main/jni/lpac-jni/lpac-jni.c b/libs/lpac-jni/src/main/jni/lpac-jni/lpac-jni.c index eddb659..6cdda00 100644 --- a/libs/lpac-jni/src/main/jni/lpac-jni/lpac-jni.c +++ b/libs/lpac-jni/src/main/jni/lpac-jni/lpac-jni.c @@ -79,10 +79,8 @@ Java_net_typeblog_lpac_1jni_LpacJni_createContext(JNIEnv *env, jobject thiz, struct lpac_jni_ctx *jni_ctx = NULL; struct euicc_ctx *ctx = NULL; - ctx = malloc(sizeof(struct euicc_ctx)); - jni_ctx = malloc(sizeof(struct lpac_jni_ctx)); - memset(ctx, 0, sizeof(struct euicc_ctx)); - memset(jni_ctx, 0, sizeof(struct lpac_jni_ctx)); + ctx = calloc(1, sizeof(struct euicc_ctx)); + jni_ctx = calloc(1, sizeof(struct lpac_jni_ctx)); ctx->apdu.interface = &lpac_jni_apdu_interface; ctx->http.interface = &lpac_jni_http_interface; jni_ctx->apdu_interface = (*env)->NewGlobalRef(env, apdu_interface);