Explorar el Código

Strip trailing commas for created signed-by fingerprint lists

This prevented some sources.list entries from working, an example
of which can be found in the test.
Julian Andres Klode hace 10 años
padre
commit
c7b7d4da7f
Se han modificado 2 ficheros con 15 adiciones y 0 borrados
  1. 2 0
      apt-pkg/deb/debmetaindex.cc
  2. 13 0
      test/integration/test-signed-by-option

+ 2 - 0
apt-pkg/deb/debmetaindex.cc

@@ -687,6 +687,8 @@ bool debReleaseIndex::SetSignedBy(std::string const &pSignedBy)
 	 std::stringstream os;
 	 std::copy(fingers.begin(), fingers.end(), std::ostream_iterator<std::string>(os, ","));
 	 SignedBy = os.str();
+	 while (SignedBy[SignedBy.size() - 1] == ',')
+	    SignedBy.resize(SignedBy.size() - 1);
       }
    }
    else if (SignedBy != pSignedBy)

+ 13 - 0
test/integration/test-signed-by-option

@@ -0,0 +1,13 @@
+#!/bin/sh
+set -e
+
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
+
+setupenvironment
+configarchitecture 'amd64'
+
+msgtest "Check that a repository with signed-by and two components works"
+echo 'deb [signed-by=CDE5618B8805FD6E202CE9C2D73C39E56580B386] https://people.debian.org/~jak/debian/ stable main contrib # Äffchen' > rootdir/etc/apt/sources.list
+
+testsuccess --nomsg aptcache policy