* apt-pkg/contrib/configuration.cc:
authorMichael Vogt <michael.vogt@ubuntu.com>
Tue, 13 Sep 2011 14:19:09 +0000 (16:19 +0200)
committerMichael Vogt <michael.vogt@ubuntu.com>
Tue, 13 Sep 2011 14:19:09 +0000 (16:19 +0200)
  - fix double delete (LP: #848907)
  - ignore only the invalid regexp instead of all options

apt-pkg/contrib/configuration.cc
debian/changelog

index 942ea9f..2d1dee2 100644 (file)
@@ -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       /*{{{*/
index 3d9bdb3..8ba89ae 100644 (file)
@@ -15,6 +15,9 @@ apt (0.8.16~exp5) experimental; urgency=low
   * methods/mirror.cc:
     - include the architecture(s) in the query string as well so 
       that the server can make better decisions
+  * apt-pkg/contrib/configuration.cc:
+    - fix double delete (LP: #848907)
+    - ignore only the invalid regexp instead of all options
 
  -- Michael Vogt <mvo@debian.org>  Fri, 05 Aug 2011 10:57:08 +0200