From: Julian Andres Klode Date: Mon, 11 Jan 2016 16:36:58 +0000 (+0100) Subject: search: Handle packages without description X-Git-Tag: 1.2~19 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/ace5a062fc5390e636b09c5684bfbeae755cf437 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 --- 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();