From a46043bcc4cc15b456ef1eac5c5f9d93bd905d53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Ter=C3=A4s?= Date: Tue, 17 Aug 2021 13:53:01 +0300 Subject: [PATCH] extract: fix directory handling 'is' is null for directories --- src/app_extract.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/app_extract.c b/src/app_extract.c index 75034bf..7c3fa58 100644 --- a/src/app_extract.c +++ b/src/app_extract.c @@ -146,13 +146,14 @@ static int extract_file(struct apk_extract_ctx *ectx, const struct apk_file_info apk_dbg2(out, "%s", fi->name); - if (fi->uvol_name) return apk_extract_volume(ectx->ac, fi, is); - - r = apk_extract_file(ctx->root_fd, fi, 0, 0, is, 0, 0, 0, - ctx->extract_flags, &ectx->ac->out); - r = apk_istream_close_error(is, r); - - if (r != 0) unlinkat(ctx->root_fd, fi->name, 0); + if (fi->uvol_name && is) { + r = apk_extract_volume(ectx->ac, fi, is); + } else { + r = apk_extract_file(ctx->root_fd, fi, 0, 0, is, 0, 0, 0, + ctx->extract_flags, &ectx->ac->out); + if (r != 0) unlinkat(ctx->root_fd, fi->name, 0); + } + if (is) r = apk_istream_close_error(is, r); return r; }