summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Andres Klode <julian.klode@canonical.com>2021-07-01 11:34:04 +0200
committerJulian Andres Klode <julian.klode@canonical.com>2021-07-01 11:34:04 +0200
commit690f6191a4332123a912c812a19a37cef253e90c (patch)
tree6eff658848d3dc4679ad7932636d2d8ee530ffa8
parent2a4c2d051db91638d9c475ebbf636694f18d12cc (diff)
Check sources.list could be parsed before adding volatile files
We just used the pointer returned which might be nullptr, properly call BuildSourceList() and check the result first. Closes: #990518
-rw-r--r--apt-private/private-install.cc2
-rwxr-xr-xtest/integration/test-bug-990518-sourceslist-volatile15
2 files changed, 17 insertions, 0 deletions
diff --git a/apt-private/private-install.cc b/apt-private/private-install.cc
index 3ffb0be32..2420865cb 100644
--- a/apt-private/private-install.cc
+++ b/apt-private/private-install.cc
@@ -860,6 +860,8 @@ bool DoInstall(CommandLine &CmdL)
{
CacheFile Cache;
Cache.InhibitActionGroups(true);
+ if (Cache.BuildSourceList() == false)
+ return false;
auto VolatileCmdL = GetPseudoPackages(Cache.GetSourceList(), CmdL, AddVolatileBinaryFile, "");
// then open the cache
diff --git a/test/integration/test-bug-990518-sourceslist-volatile b/test/integration/test-bug-990518-sourceslist-volatile
new file mode 100755
index 000000000..1353566a3
--- /dev/null
+++ b/test/integration/test-bug-990518-sourceslist-volatile
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -e
+
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
+
+setupenvironment
+configarchitecture 'amd64'
+
+buildsimplenativepackage 'foo' 'amd64' '1'
+
+echo foo > rootdir/etc/apt/sources.list.d/test.list
+
+testfailureequal "E: Malformed line 1 in source list ${TMPWORKINGDIRECTORY}/rootdir/etc/apt/sources.list.d/test.list (type)
+E: The list of sources could not be read." apt install ./incoming/foo_1_amd64.deb -s