diff options
author | Sebastian Rasmussen <sebras@gmail.com> | 2017-11-14 00:56:29 +0100 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2017-11-22 23:09:51 +0100 |
commit | 954dddcd5704c93c5fa5858a065d0c7d41c1ed00 (patch) | |
tree | 9a1001627d615ba6ab4ccc085cfd123a89d986bc | |
parent | 8547750d3426c9cc14ae79098699305ba82e5f35 (diff) | |
download | mupdf-954dddcd5704c93c5fa5858a065d0c7d41c1ed00.tar.xz |
jni: Free quadpoints and vertices upon JNI error.
-rw-r--r-- | platform/java/mupdf_native.c | 18 |
1 files changed, 15 insertions, 3 deletions
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); |