summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2011-09-13 16:19:09 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2011-09-13 16:19:09 +0200
commit44edc41ea7146be02775a3af05e91fc56faae3e9 (patch)
tree559ecc84e71e297542c5a49368fe7183ac9ed681
parentabcbf0af368cdda142b5d7cc03f793cfbdf23028 (diff)
* apt-pkg/contrib/configuration.cc:
- fix double delete (LP: #848907) - ignore only the invalid regexp instead of all options
-rw-r--r--apt-pkg/contrib/configuration.cc9
-rw-r--r--debian/changelog3
2 files changed, 8 insertions, 4 deletions
diff --git a/apt-pkg/contrib/configuration.cc b/apt-pkg/contrib/configuration.cc
index 942ea9fbc..2d1dee22d 100644
--- a/apt-pkg/contrib/configuration.cc
+++ b/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 /*{{{*/
diff --git a/debian/changelog b/debian/changelog
index 3d9bdb31f..8ba89aed6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -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