From 6d41b27f534a97c116c30701485595a574df24f0 Mon Sep 17 00:00:00 2001 From: Thomas Roth Date: Wed, 24 Feb 2010 23:59:54 +0100 Subject: [PATCH] Fixes crash on illegal regular expression for interception. --- libmproxy/filt.py | 12 +++++++++--- todo | 2 -- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libmproxy/filt.py b/libmproxy/filt.py index 49fff6c70..1dba31537 100644 --- a/libmproxy/filt.py +++ b/libmproxy/filt.py @@ -73,8 +73,10 @@ class FResp(_Action): class _Rex(_Action): def __init__(self, expr): self.expr = expr - self.re = re.compile(self.expr) - + try: + self.re = re.compile(self.expr) + except: + self.re = False def _check_content_type(expr, o): val = o.headers.get("content-type") @@ -186,7 +188,11 @@ class FUrl(_Rex): def make(klass, s, loc, toks): if len(toks) > 1: toks = toks[1:] - return klass(*toks) + ret_klass = klass(*toks) + if ret_klass.re: + return ret_klass + else: + return False def __call__(self, o): if o.is_response(): diff --git a/todo b/todo index b949157fa..363c07c5a 100644 --- a/todo +++ b/todo @@ -14,7 +14,5 @@ Future: Bugs: - - Exception handling for regular expression compiler in filt.py. - - Fix crash on illegal regular expression on libmproxy/filt.py:76 - In some circumstances, long URLs in list view are line-broken oddly. - Termination sometimes hangs.