mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-05-05 12:26:52 +02:00
Revert "main/apk-tools: fix for apk verify"
This reverts commit 460063f6d701bf7cc551a0739f0d51e8e5a08aa4.
This commit is contained in:
parent
7a874ce3d8
commit
c3890798e6
@ -1,81 +0,0 @@
|
||||
From f126316c791371bd3dfd7c348b10e93e49f5e2d4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
|
||||
Date: Fri, 17 Dec 2010 09:36:19 +0200
|
||||
Subject: [PATCH] gunzip: fix ordering of boundary callbacks
|
||||
|
||||
The boundary callback should not happen until all the uncompressed
|
||||
data has been consumed. This previously seems to have worked
|
||||
because normally gzip library returns "no error" instead of the
|
||||
"stream end" if we extract exactly the amount of bytes remaining
|
||||
in the archive. (Perhaps this was changed in new zlib.) In any
|
||||
case, verification was broken with some apks due to this callback
|
||||
ordering issue.
|
||||
---
|
||||
src/gunzip.c | 32 ++++++++++++++++++++++++--------
|
||||
1 files changed, 24 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/gunzip.c b/src/gunzip.c
|
||||
index aebaf76..df2bbbb 100644
|
||||
--- a/src/gunzip.c
|
||||
+++ b/src/gunzip.c
|
||||
@@ -27,6 +27,7 @@ struct apk_gzip_istream {
|
||||
apk_multipart_cb cb;
|
||||
void *cbctx;
|
||||
void *cbprev;
|
||||
+ apk_blob_t cbarg;
|
||||
};
|
||||
|
||||
static ssize_t gzi_read(void *stream, void *ptr, size_t size)
|
||||
@@ -48,6 +49,18 @@ static ssize_t gzi_read(void *stream, void *ptr, size_t size)
|
||||
gis->zs.next_out = ptr;
|
||||
|
||||
while (gis->zs.avail_out != 0 && gis->err == 0) {
|
||||
+ if (!APK_BLOB_IS_NULL(gis->cbarg)) {
|
||||
+ r = gis->cb(gis->cbctx,
|
||||
+ gis->err ? APK_MPART_END : APK_MPART_BOUNDARY,
|
||||
+ gis->cbarg);
|
||||
+ if (r > 0)
|
||||
+ r = -ECANCELED;
|
||||
+ if (r != 0) {
|
||||
+ gis->err = r;
|
||||
+ goto ret;
|
||||
+ }
|
||||
+ gis->cbarg = APK_BLOB_NULL;
|
||||
+ }
|
||||
if (gis->zs.avail_in == 0) {
|
||||
apk_blob_t blob;
|
||||
|
||||
@@ -86,19 +99,22 @@ static ssize_t gzi_read(void *stream, void *ptr, size_t size)
|
||||
gis->zs.avail_in == 0)
|
||||
gis->err = 1;
|
||||
if (gis->cb != NULL) {
|
||||
+ gis->cbarg = APK_BLOB_PTR_LEN(gis->cbprev, (void *) gis->zs.next_in - gis->cbprev);
|
||||
+ gis->cbprev = gis->zs.next_in;
|
||||
+ }
|
||||
+ /* If we hit end of the bitstream (not end
|
||||
+ * of just this gzip), we need to do the
|
||||
+ * callback here, as we won't be called again.
|
||||
+ * For boundaries it should be postponed to not
|
||||
+ * be called until next gzip read is started. */
|
||||
+ if (gis->err) {
|
||||
r = gis->cb(gis->cbctx,
|
||||
gis->err ? APK_MPART_END : APK_MPART_BOUNDARY,
|
||||
- APK_BLOB_PTR_LEN(gis->cbprev, (void *) gis->zs.next_in - gis->cbprev));
|
||||
+ gis->cbarg);
|
||||
if (r > 0)
|
||||
r = -ECANCELED;
|
||||
- if (r != 0) {
|
||||
- gis->err = r;
|
||||
- goto ret;
|
||||
- }
|
||||
- gis->cbprev = gis->zs.next_in;
|
||||
- }
|
||||
- if (gis->err)
|
||||
goto ret;
|
||||
+ }
|
||||
inflateEnd(&gis->zs);
|
||||
if (inflateInit2(&gis->zs, 15+32) != Z_OK)
|
||||
return -ENOMEM;
|
||||
--
|
||||
1.7.3.3
|
||||
|
||||
@ -1,14 +1,13 @@
|
||||
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
|
||||
pkgname=apk-tools
|
||||
pkgver=2.0.7
|
||||
pkgrel=2
|
||||
pkgrel=1
|
||||
pkgdesc="Alpine Package Keeper - package manager for alpine"
|
||||
subpackages="$pkgname-static"
|
||||
depends=
|
||||
makedepends="zlib-dev openssl-dev pkgconfig"
|
||||
source="http://git.alpinelinux.org/cgit/$pkgname/snapshot/$pkgname-$pkgver.tar.bz2
|
||||
0001-info-return-error-if-owning-package-was-not-found.patch
|
||||
0001-gunzip-fix-ordering-of-boundary-callbacks.patch
|
||||
"
|
||||
|
||||
url="http://git.alpinelinux.org/cgit/apk-tools/"
|
||||
@ -51,5 +50,4 @@ static() {
|
||||
}
|
||||
|
||||
md5sums="3c4591c594f9b2261ab588446a50d183 apk-tools-2.0.7.tar.bz2
|
||||
1364d38e784ad6cc04e157665903ef0c 0001-info-return-error-if-owning-package-was-not-found.patch
|
||||
1ef0ab58cf611c1172e6053a96c46d19 0001-gunzip-fix-ordering-of-boundary-callbacks.patch"
|
||||
1364d38e784ad6cc04e157665903ef0c 0001-info-return-error-if-owning-package-was-not-found.patch"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user