From 0acaaa4065c8cfd919fed46cf703146b9ed7b07a Mon Sep 17 00:00:00 2001 From: Sebastian Rasmussen Date: Tue, 24 Oct 2017 15:41:23 +0200 Subject: jni: Prevent memory leak by freeing upon error. Previously the counts and points arrays would leak if GetFloatArrayRegion() threw an exception. --- platform/java/mupdf_native.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'platform/java') diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c index 561ba1dc..ccc50fad 100644 --- a/platform/java/mupdf_native.c +++ b/platform/java/mupdf_native.c @@ -8547,7 +8547,12 @@ FUN(PDFAnnotation_setInkList)(JNIEnv *env, jobject self, jobject jinklist) counts[i] = (*env)->GetArrayLength(env, jpath) / 2; (*env)->GetFloatArrayRegion(env, jpath, k, counts[i], points); - if ((*env)->ExceptionCheck(env)) return; + if ((*env)->ExceptionCheck(env)) + { + fz_free(ctx, counts); + fz_free(ctx, points); + return; + } (*env)->DeleteLocalRef(env, jpath); } -- cgit v1.2.3