]> git.saurik.com Git - apt.git/commitdiff
allow uncompressed files to be empty in store again
authorDavid Kalnischkies <david@kalnischkies.de>
Thu, 14 Apr 2016 14:16:06 +0000 (16:16 +0200)
committerDavid Kalnischkies <david@kalnischkies.de>
Thu, 14 Apr 2016 14:55:35 +0000 (16:55 +0200)
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.

methods/store.cc
test/integration/test-apt-update-empty-files [new file with mode: 0755]

index 29cf9e947d012883cda7a3fd3dadec6d66a12ae9..2ad0f0177675a6ac50e4ee8a7d2dbecdbfac3a86 100644 (file)
@@ -73,7 +73,7 @@ bool StoreMethod::Fetch(FetchItem *Itm)                                       /*{{{*/
    {
       if (OpenFileWithCompressorByName(From, Path, FileFd::ReadOnly, Prog) == false)
         return false;
    {
       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
         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 (executable)
index 0000000..e4f6d62
--- /dev/null
@@ -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