summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/database.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/database.c b/src/database.c
index 064957e..ef9f73c 100644
--- a/src/database.c
+++ b/src/database.c
@@ -638,7 +638,8 @@ int apk_cache_download(struct apk_database *db, struct apk_repository *repo,
bs = apk_bstream_from_url(url);
bs = apk_bstream_tee(bs, db->cache_fd, tmpcacheitem, cb, cb_ctx);
is = apk_bstream_gunzip_mpart(bs, apk_sign_ctx_mpart_cb, &sctx);
- r = apk_tar_parse(is, apk_sign_ctx_verify_tar, &sctx, FALSE, &db->id_cache);
+ if (is) r = apk_tar_parse(is, apk_sign_ctx_verify_tar, &sctx, FALSE, &db->id_cache);
+ else r = -errno;
apk_sign_ctx_free(&sctx);
} else {
is = apk_istream_from_url(url);
@@ -650,7 +651,7 @@ int apk_cache_download(struct apk_database *db, struct apk_repository *repo,
r = -errno;
}
}
- is->close(is);
+ if (is) is->close(is);
if (r < 0) {
unlinkat(db->cache_fd, tmpcacheitem, 0);
return r;