From 954dddcd5704c93c5fa5858a065d0c7d41c1ed00 Mon Sep 17 00:00:00 2001 From: Sebastian Rasmussen Date: Tue, 14 Nov 2017 00:56:29 +0100 Subject: jni: Free quadpoints and vertices upon JNI error. --- platform/java/mupdf_native.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'platform/java') diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c index 7eaa13db..c9b76258 100644 --- a/platform/java/mupdf_native.c +++ b/platform/java/mupdf_native.c @@ -8464,7 +8464,11 @@ FUN(PDFAnnotation_setQuadPoints)(JNIEnv *env, jobject self, jobject jqps) for (i = 0; i < n; i++) { jqp = (*env)->GetObjectArrayElement(env, jqps, i); - if ((*env)->ExceptionCheck(env)) return; + if ((*env)->ExceptionCheck(env)) + { + fz_free(ctx, qp); + return; + } if (!jqp) continue; @@ -8474,7 +8478,11 @@ FUN(PDFAnnotation_setQuadPoints)(JNIEnv *env, jobject self, jobject jqps) m = 8; (*env)->GetFloatArrayRegion(env, jqp, 0, m, &qp[i * 8]); - if ((*env)->ExceptionCheck(env)) return; + if ((*env)->ExceptionCheck(env)) + { + fz_free(ctx, qp); + return; + } if (m < 8) memset(&qp[i * 8 + m], 0, (8 - m) * sizeof (float)); @@ -8727,7 +8735,11 @@ FUN(PDFAnnotation_setVertices)(JNIEnv *env, jobject self, jobject jvertices) jni_rethrow(env, ctx); (*env)->GetFloatArrayRegion(env, jvertices, 0, n, vertices); - if ((*env)->ExceptionCheck(env)) return; + if ((*env)->ExceptionCheck(env)) + { + fz_free(ctx, vertices); + return; + } fz_try(ctx) pdf_set_annot_vertices(ctx, annot, n, vertices); -- cgit v1.2.3