From a6188964c98b7a5c5821f333d2c1b14c42345193 Mon Sep 17 00:00:00 2001 From: tarsin Date: Sun, 31 Jul 2022 09:23:41 +0800 Subject: [PATCH] Add simple sanitize, Fix#148 --- native/src/main/jni/image/image.c | 5 +++-- native/src/main/jni/image/java_wrapper.c | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/native/src/main/jni/image/image.c b/native/src/main/jni/image/image.c index d9899d4d9..266ad38eb 100644 --- a/native/src/main/jni/image/image.c +++ b/native/src/main/jni/image/image.c @@ -53,8 +53,9 @@ void decodeCommon(IMAGE *image, SOURCE *src) { } IMAGE *createFromFd(int fd) { - AImageDecoder *decoder; - AImageDecoder_createFromFd(fd, &decoder); + AImageDecoder *decoder = NULL; + if (AImageDecoder_createFromFd(fd, &decoder) != ANDROID_IMAGE_DECODER_SUCCESS) + return NULL; IMAGE *image = calloc(1, sizeof(IMAGE)); SOURCE *src = calloc(1, sizeof(SOURCE)); src->decoder = decoder; diff --git a/native/src/main/jni/image/java_wrapper.c b/native/src/main/jni/image/java_wrapper.c index 20321d57c..38cc4c1e0 100644 --- a/native/src/main/jni/image/java_wrapper.c +++ b/native/src/main/jni/image/java_wrapper.c @@ -53,6 +53,8 @@ jobject create_image_object(JNIEnv *env, void *ptr, int format, int width, int h JNIEXPORT jobject JNICALL Java_com_hippo_image_Image_nativeDecodeFdInt(JNIEnv *env, jclass clazz, jint fd) { IMAGE *image = createFromFd(fd); + if (!image) + return NULL; return create_image_object(env, image, image->isAnimated, image->width, image->height); }