Sfoglia il codice sorgente

* apt-pkg/contrib/configuration.cc:
- fix double delete (LP: #848907)
- ignore only the invalid regexp instead of all options

Michael Vogt 15 anni fa
parent
commit
fd4d895b20
2 ha cambiato i file con 10 aggiunte e 4 eliminazioni
  1. 5 4
      apt-pkg/contrib/configuration.cc
  2. 5 0
      debian/changelog

+ 5 - 4
apt-pkg/contrib/configuration.cc

@@ -870,10 +870,10 @@ Configuration::MatchAgainstConfig::MatchAgainstConfig(char const * Config)
       {
 	 regfree(p);
 	 delete p;
-	 clearPatterns();
-	 _error->Warning("Regex compilation error for '%s' in configuration option '%s'",
-				s->c_str(), Config);
-	 return;
+	 _error->Warning("Invalid regular expression '%s' in configuration "
+                         "option '%s' will be ignored.",
+                         s->c_str(), Config);
+	 continue;
       }
    }
    if (strings.size() == 0)
@@ -894,6 +894,7 @@ void Configuration::MatchAgainstConfig::clearPatterns()
       regfree(*p);
       delete *p;
    }
+   patterns.clear();
 }
 									/*}}}*/
 // MatchAgainstConfig::Match - returns true if a pattern matches	/*{{{*/

+ 5 - 0
debian/changelog

@@ -4,6 +4,11 @@ apt (0.8.15.8) UNRELEASED; urgency=low
   * cmdline/apt-get.cc:
     - output list of virtual package providers to c1out in -q=1
       instead of /dev/null to unbreak sbuild (LP: #816155)
+  
+  [ Michael Vogt ]
+  * apt-pkg/contrib/configuration.cc:
+    - fix double delete (LP: #848907)
+    - ignore only the invalid regexp instead of all options
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Tue, 13 Sep 2011 17:39:10 +0200