summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2017-04-18 03:47:23 +0800
committerSebastian Rasmussen <sebras@gmail.com>2017-04-18 19:39:40 +0800
commitb2a2b561e1795df5402b87f50e856e4b9a5d77b0 (patch)
treefc9a3b77549e47bfb9bd0b3950ab378eec8d33da /platform
parent6f1d0b83fe805e5c49b62d5438252de6fe37a383 (diff)
downloadmupdf-b2a2b561e1795df5402b87f50e856e4b9a5d77b0.tar.xz
jni: NewStringUTF() may throw exception, handle this.
When NewStringUTF() throws an exception NewObject() may not be called. Change to code to avoid this.
Diffstat (limited to 'platform')
-rw-r--r--platform/java/mupdf_native.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c
index fe6db618..b2ec3eb1 100644
--- a/platform/java/mupdf_native.c
+++ b/platform/java/mupdf_native.c
@@ -4525,14 +4525,18 @@ FUN(Page_getSeparation)(JNIEnv *env, jobject self, jint sep)
char rgba[4];
unsigned int bgra;
unsigned int cmyk;
- jobject jname;
+ jobject jname = NULL;
if (!ctx || !page) return NULL;
/* MuPDF returns RGBA as bytes. Android wants a packed BGRA int. */
name = fz_get_separation_on_page(ctx, page, sep, (unsigned int *)(&rgba[0]), &cmyk);
bgra = (rgba[0] << 16) | (rgba[1]<<8) | rgba[2] | (rgba[3]<<24);
- jname = name ? (*env)->NewStringUTF(env, name) : NULL;
+ if (name)
+ {
+ jname = (*env)->NewStringUTF(env, name);
+ if (!jname) return NULL;
+ }
return (*env)->NewObject(env, cls_Separation, mid_Separation_init, jname, bgra, cmyk);
}