Don't segfault if the cache can't be made.
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:59:28 +0000 (16:59 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:59:28 +0000 (16:59 +0000)
Author: jgg
Date: 2002-09-21 21:29:13 GMT
Don't segfault if the cache can't be made.
Show the filename for all error messages that are due to opening .debs #151835

cmdline/apt-extracttemplates.cc

index 700cf18..d770577 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: apt-extracttemplates.cc,v 1.10 2002/02/25 03:52:58 tausq Exp $
+// $Id: apt-extracttemplates.cc,v 1.11 2002/09/21 21:29:13 jgg Exp $
 /* ######################################################################
    
    APT Extract Templates - Program to extract debconf config and template
@@ -288,6 +288,8 @@ bool Go(CommandLine &CmdL)
        List.ReadMainList();
        OpProgress Prog;
        pkgMakeStatusCache(List,Prog,&Map,true);
+       if (Map == 0)
+          return false;
        DebFile::Cache = new pkgCache(Map);
        if (_error->PendingError() == true)
                return false;
@@ -303,8 +305,11 @@ bool Go(CommandLine &CmdL)
                // Will pick up the errors later..
                DebFile file(CmdL.FileList[I]);
                if (file.Go() == false)
-                       continue; 
-               
+               {
+                       _error->Error("Prior errors apply to %s",CmdL.FileList[I]);
+                       continue;
+               }
+
                // Does the package have templates?
                if (file.Template != 0 && file.ParseInfo() == true)
                {