diff options
author | David Kalnischkies <david@kalnischkies.de> | 2016-04-14 16:16:06 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2016-04-14 16:55:35 +0200 |
commit | 479f6fa454cd6ee9e1bc4d9ecda856d34584092e (patch) | |
tree | a30949d2fae2f523123a7f44ee64c689555bafbe | |
parent | e169fa4a85e03b2b03bb1bdba716b96654ae6050 (diff) |
allow uncompressed files to be empty in store again
With the previous fix for file applied we can again hit repositories
which contain uncompressed empty files, which since the introduction of
the central store: method wasn't accounted for anymore as we forbid
empty compressed files.
-rw-r--r-- | methods/store.cc | 2 | ||||
-rwxr-xr-x | test/integration/test-apt-update-empty-files | 25 |
2 files changed, 26 insertions, 1 deletions
diff --git a/methods/store.cc b/methods/store.cc index 29cf9e947..2ad0f0177 100644 --- a/methods/store.cc +++ b/methods/store.cc @@ -73,7 +73,7 @@ bool StoreMethod::Fetch(FetchItem *Itm) /*{{{*/ { if (OpenFileWithCompressorByName(From, Path, FileFd::ReadOnly, Prog) == false) return false; - if(From.FileSize() == 0) + if(From.IsCompressed() && From.FileSize() == 0) return _error->Error(_("Empty files can't be valid archives")); } else diff --git a/test/integration/test-apt-update-empty-files b/test/integration/test-apt-update-empty-files new file mode 100755 index 000000000..e4f6d62bd --- /dev/null +++ b/test/integration/test-apt-update-empty-files @@ -0,0 +1,25 @@ +#!/bin/sh +set -e + +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" + +setupenvironment +configarchitecture 'amd64' +configcompression '.' 'gz' + +insertpackage 'unstable' 'apt' 'amd64' '1' +# this automatically gives us an empty Sources file + +setupaptarchive --no-update + +msgmsg 'Test with file' +rm -rf rootdir/var/lib/apt/lists +testsuccess apt update -o Debug::pkgAcquire::Worker=1 +cp rootdir/tmp/testsuccess.output apt.output +testsuccess grep '%0aAlt-Filename:%20/.*/Sources%0a' apt.output + +msgmsg 'Test with http' +changetowebserver +rm -rf rootdir/var/lib/apt/lists +testsuccess apt update -o Debug::pkgAcquire::Worker=1 |