Handle re.error exceptions raised from re.compile() when ACCEPT_CHOSTS
authorZac Medico <zmedico@gentoo.org>
Sat, 28 Jun 2008 23:54:43 +0000 (23:54 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 28 Jun 2008 23:54:43 +0000 (23:54 -0000)
is invalid. Thanks to solar for reporting.

svn path=/main/trunk/; revision=10840

pym/portage/__init__.py

index 7ccf5bdeba31013e7b2a5b552b0fa2cbc9751065..5c90a2ee1ffbc7a90e66cd28cf2557ba2f5b6439 100644 (file)
@@ -2395,10 +2395,21 @@ class config(object):
                        if not accept_chost:
                                self._accept_chost_re = re.compile(".*")
                        elif len(accept_chost) == 1:
-                               self._accept_chost_re = re.compile(r'^%s$' % accept_chost[0])
+                               try:
+                                       self._accept_chost_re = re.compile(r'^%s$' % accept_chost[0])
+                               except re.error, e:
+                                       writemsg("!!! Invalid ACCEPT_CHOSTS value: '%s': %s\n" % \
+                                               (accept_chost[0], e), noiselevel=-1)
+                                       self._accept_chost_re = re.compile("^$")
                        else:
-                               self._accept_chost_re = re.compile(
-                                       r'^(%s)$' % "|".join(accept_chost))
+                               try:
+                                       self._accept_chost_re = re.compile(
+                                               r'^(%s)$' % "|".join(accept_chost))
+                               except re.error, e:
+                                       writemsg("!!! Invalid ACCEPT_CHOSTS value: '%s': %s\n" % \
+                                               (" ".join(accept_chost), e), noiselevel=-1)
+                                       self._accept_chost_re = re.compile("^$")
+
                return self._accept_chost_re.match(
                        pkg.metadata.get("CHOST", "")) is not None