diff options
author | Timo Teräs <timo.teras@iki.fi> | 2021-12-03 15:05:50 +0200 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2021-12-03 15:06:49 +0200 |
commit | 8c6c44d3ebc6ad6f78ab939e8de433c6b567ada3 (patch) | |
tree | 1893a582976cde43b26c7b48001fe9cad72c7f6d /src | |
parent | 1ab81fdd4cb9b88dad35cc93521650f85837fd6e (diff) | |
download | apk-tools-8c6c44d3ebc6ad6f78ab939e8de433c6b567ada3.tar.gz apk-tools-8c6c44d3ebc6ad6f78ab939e8de433c6b567ada3.tar.bz2 apk-tools-8c6c44d3ebc6ad6f78ab939e8de433c6b567ada3.tar.xz apk-tools-8c6c44d3ebc6ad6f78ab939e8de433c6b567ada3.zip |
extract_v3: make sure empty file's hash is copied too
fixes #10785
Diffstat (limited to 'src')
-rw-r--r-- | src/extract_v3.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/extract_v3.c b/src/extract_v3.c index 65e8a59..de265ed 100644 --- a/src/extract_v3.c +++ b/src/extract_v3.c @@ -77,11 +77,11 @@ static int apk_extract_v3_file(struct apk_extract_ctx *ectx, off_t sz, struct ap return ectx->ops->file(ectx, &fi, is); } + apk_digest_from_blob(&fi.digest, adb_ro_blob(&ctx->file, ADBI_FI_HASHES)); + if (fi.digest.alg == APK_DIGEST_NONE) return -APKE_ADB_SCHEMA; fi.mode |= S_IFREG; if (!is) return ectx->ops->file(ectx, &fi, 0); - apk_digest_from_blob(&fi.digest, adb_ro_blob(&ctx->file, ADBI_FI_HASHES)); - if (fi.digest.alg == APK_DIGEST_NONE) return -APKE_ADB_SCHEMA; r = ectx->ops->file(ectx, &fi, apk_istream_verify(&dis, is, fi.size, &fi.digest)); return apk_istream_close_error(&dis.is, r); } |