X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/a9fd02dec56bcb3d7485ae286fad665aeed7cda4..71203dbf00cbb259fb59e8daf0543a45394b6623:/apt-pkg/deb/debmetaindex.cc diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc index 71aee3f72..f756cdb1f 100644 --- a/apt-pkg/deb/debmetaindex.cc +++ b/apt-pkg/deb/debmetaindex.cc @@ -687,12 +687,19 @@ bool debReleaseIndex::SetSignedBy(std::string const &pSignedBy) std::stringstream os; std::copy(fingers.begin(), fingers.end(), std::ostream_iterator(os, ",")); SignedBy = os.str(); - while (SignedBy[SignedBy.size() - 1] == ',') - SignedBy.resize(SignedBy.size() - 1); } + // Normalize the string: Remove trailing commas + while (SignedBy[SignedBy.size() - 1] == ',') + SignedBy.resize(SignedBy.size() - 1); + } + else { + // Only compare normalized strings + auto pSignedByView = APT::StringView(pSignedBy); + while (pSignedByView[pSignedByView.size() - 1] == ',') + pSignedByView = pSignedByView.substr(0, pSignedByView.size() - 1); + if (pSignedByView != SignedBy) + return _error->Error(_("Conflicting values set for option %s regarding source %s %s: %s != %s"), "Signed-By", URI.c_str(), Dist.c_str(), SignedBy.c_str(), pSignedByView.to_string().c_str()); } - else if (SignedBy != pSignedBy) - return _error->Error(_("Conflicting values set for option %s regarding source %s %s: %s != %s"), "Signed-By", URI.c_str(), Dist.c_str(), SignedBy.c_str(), pSignedBy.c_str()); return true; } /*}}}*/