Ver código fonte

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
Julian Andres Klode 10 anos atrás
pai
commit
ace5a062fc
1 arquivos alterados com 5 adições e 2 exclusões
  1. 5 2
      apt-private/private-search.cc

+ 5 - 2
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<regex_t>::const_iterator pattern = Patterns.begin();