diff options
-rw-r--r-- | apt-pkg/contrib/fileutl.cc | 4 | ||||
-rw-r--r-- | debian/changelog | 7 |
2 files changed, 8 insertions, 3 deletions
diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 2bbf3a1b1..28898fc34 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -1347,6 +1347,7 @@ unsigned long long FileFd::Size() // gzopen in "direct" mode as well else if (d->gz && !gzdirect(d->gz) && size > 0) { + off_t const oldPos = lseek(iFd,0,SEEK_CUR); /* unfortunately zlib.h doesn't provide a gzsize(), so we have to do * this ourselves; the original (uncompressed) file size is the last 32 * bits of the file */ @@ -1364,8 +1365,9 @@ unsigned long long FileFd::Size() size = tmp_size; #endif - if (lseek(iFd, d->seekpos, SEEK_SET) < 0) + if (lseek(iFd, oldPos, SEEK_SET) < 0) return _error->Errno("lseek","Unable to seek in gzipped file"); + return size; } #endif diff --git a/debian/changelog b/debian/changelog index 2e8bcfb13..c7c33fef1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,12 +9,15 @@ apt (0.8.16~exp10) UNRELEASED; urgency=low * apt-pkg/deb/dpkgpm.cc: - check if dpkg supports multiarch with --assert-multi-arch and if it does be always explicit about the architecture + * apt-pkg/contrib/fileutl.h: + - store the offset in the internal fd before calculate size of + the zlib-handled file to jump back to this place again [ Michael Vogt ] - * apt-pkg/contrib/fileutils.h: + * apt-pkg/contrib/fileutl.h: - fix segfault from python-apt testsuite - -- David Kalnischkies <kalnischkies@gmail.com> Fri, 13 Jan 2012 17:29:07 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Wed, 18 Jan 2012 00:47:54 +0100 apt (0.8.16~exp9) experimental; urgency=low |