From ace5a062fc5390e636b09c5684bfbeae755cf437 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 11 Jan 2016 17:36:58 +0100 Subject: search: Handle packages without description If a package has no description, we would crash in search. While this should not happen, there seem to be some weird cases where it does. A safer way might be to make the whole parser thing safe against this, so pkgRecords::Lookup(Desc.FileList()) works and returns a parser where all values are empty. This would also fix all other instances of this bug, if there are any. Closes: #810622 --- apt-private/private-search.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'apt-private/private-search.cc') diff --git a/apt-private/private-search.cc b/apt-private/private-search.cc index 0728b26c8..4f2bc4913 100644 --- a/apt-private/private-search.cc +++ b/apt-private/private-search.cc @@ -91,8 +91,11 @@ static bool FullTextSearch(CommandLine &CmdL) /*{{{*/ char const * const PkgName = P.Name(); pkgCache::DescIterator Desc = V.TranslatedDescription(); - pkgRecords::Parser &parser = records.Lookup(Desc.FileList()); - std::string const LongDesc = parser.LongDesc(); + std::string LongDesc = ""; + if (!Desc.end()) { + pkgRecords::Parser &parser = records.Lookup(Desc.FileList()); + LongDesc = parser.LongDesc(); + } bool all_found = true; for (std::vector::const_iterator pattern = Patterns.begin(); -- cgit v1.2.3