summaryrefslogtreecommitdiff
path: root/platform/java
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2017-11-14 00:56:29 +0100
committerTor Andersson <tor.andersson@artifex.com>2017-11-22 23:09:51 +0100
commit954dddcd5704c93c5fa5858a065d0c7d41c1ed00 (patch)
tree9a1001627d615ba6ab4ccc085cfd123a89d986bc /platform/java
parent8547750d3426c9cc14ae79098699305ba82e5f35 (diff)
downloadmupdf-954dddcd5704c93c5fa5858a065d0c7d41c1ed00.tar.xz
jni: Free quadpoints and vertices upon JNI error.
Diffstat (limited to 'platform/java')
-rw-r--r--platform/java/mupdf_native.c18
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);