summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/contrib/fileutl.cc4
-rw-r--r--debian/changelog7
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