From 0a25643b876964792d31de81bc3f9fd5f0b27b69 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Thu, 4 Jul 2024 20:16:11 +0800 Subject: [PATCH] Fix native crash on archive open failures --- app/src/main/cpp/archive.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/cpp/archive.c b/app/src/main/cpp/archive.c index ffabb59a3..8cc8ddb75 100644 --- a/app/src/main/cpp/archive.c +++ b/app/src/main/cpp/archive.c @@ -49,7 +49,7 @@ typedef struct { } entry; pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; -static archive_ctx **ctx_pool; +static archive_ctx **ctx_pool = NULL; #define CTX_POOL_SIZE 20 static void *mempool = NULL; @@ -403,6 +403,7 @@ JNIEXPORT void JNICALL Java_com_hippo_ehviewer_jni_ArchiveKt_closeArchive(JNIEnv *env, jclass thiz) { EH_UNUSED(env); EH_UNUSED(thiz); + if (!ctx_pool) return; for (int i = 0; i < CTX_POOL_SIZE; i++) archive_release_ctx(ctx_pool[i]); free(passwd);