diff options
-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 |