]> git.saurik.com Git - apt.git/blobdiff - apt-private/private-list.cc
fail instead of segfault on unreadable config files
[apt.git] / apt-private / private-list.cc
index aa3a2c24baf88483139ba1a5b2e849ad33c2fa96..32c8eeaa2cb80a916071b9cf1beece71bc795755 100644 (file)
@@ -41,7 +41,7 @@ struct PackageSortAlphabetic                                          /*{{{*/
 class PackageNameMatcher : public Matcher
 {
   public:
-   PackageNameMatcher(const char **patterns)
+   explicit PackageNameMatcher(const char **patterns)
    {
       for(int i=0; patterns[i] != NULL; ++i)
       {
@@ -59,7 +59,7 @@ class PackageNameMatcher : public Matcher
       for(J=filters.begin(); J != filters.end(); ++J)
          delete *J;
    }
-   virtual bool operator () (const pkgCache::PkgIterator &P) 
+   virtual bool operator () (const pkgCache::PkgIterator &P) APT_OVERRIDE
    {
       for(J=filters.begin(); J != filters.end(); ++J)
       {
@@ -93,8 +93,8 @@ static void ListAllVersions(pkgCacheFile &CacheFile, pkgRecords &records,/*{{{*/
 bool DoList(CommandLine &Cmd)
 {
    pkgCacheFile CacheFile;
-   pkgCache *Cache = CacheFile.GetPkgCache();
-   if (unlikely(Cache == NULL))
+   pkgCache * const Cache = CacheFile.GetPkgCache();
+   if (unlikely(Cache == nullptr || CacheFile.GetDepCache() == nullptr))
       return false;
    pkgRecords records(CacheFile);