diff --git a/ctrtool/exefs.c b/ctrtool/exefs.c index a4dce90..7807071 100644 --- a/ctrtool/exefs.c +++ b/ctrtool/exefs.c @@ -129,7 +129,7 @@ void exefs_save(exefs_context* ctx, u32 index, u32 flags) ctr_init_counter(&ctx->aes, ctx->key, ctx->counter); ctr_add_counter(&ctx->aes, offset / 0x10); - if (index == 0 && ctx->compressedflag && ((flags & RawFlag) == 0)) + if (index == 0 && (ctx->compressedflag || (flags & DecompressCodeFlag)) && ((flags & RawFlag) == 0)) { fprintf(stdout, "Decompressing section %s to %s...\n", name, outfname); @@ -200,6 +200,8 @@ void exefs_save(exefs_context* ctx, u32 index, u32 flags) } clean: + if (fout) + fclose(fout); free(compressedbuffer); free(decompressedbuffer); return;