diff --git a/app/src/main/cpp/archive.c b/app/src/main/cpp/archive.c index 7c0bd2e6a..d3e696ae6 100644 --- a/app/src/main/cpp/archive.c +++ b/app/src/main/cpp/archive.c @@ -258,12 +258,11 @@ Java_com_hippo_UriArchiveAccessor_extractToAddr(JNIEnv *env, jobject thiz, jint long long size = archive_entry_size(ctx->entry); void *buffer = malloc(size + sizeof(long long)); if (!buffer) { - *(long long *) buffer = size; ctx->using = 0; LOGE("Allocate buffer for decompression failed:ENOMEM"); - free(buffer); return 0; } + *(long long *) buffer = size; ret = archive_read_data(ctx->arc, buffer + sizeof(long long), size); ctx->using = 0; if (ret == size)