diff --git a/pywb/rewrite/cookie_rewriter.py b/pywb/rewrite/cookie_rewriter.py index 070912d9..c9c7e8b5 100644 --- a/pywb/rewrite/cookie_rewriter.py +++ b/pywb/rewrite/cookie_rewriter.py @@ -1,4 +1,4 @@ -import Cookie +from Cookie import SimpleCookie, CookieError #================================================================= @@ -11,10 +11,12 @@ class WbUrlCookieRewriter(object): self.url_rewriter = url_rewriter def rewrite(self, cookie_str, header='Set-Cookie'): - cookie = Cookie.SimpleCookie() - cookie.load(cookie_str) - results = [] + cookie = SimpleCookie() + try: + cookie.load(cookie_str) + except CookieError: + return results for name, morsel in cookie.iteritems(): if morsel.get('domain'): diff --git a/pywb/rewrite/test/test_cookie_rewriter.py b/pywb/rewrite/test/test_cookie_rewriter.py index 620248cd..bba5c959 100644 --- a/pywb/rewrite/test/test_cookie_rewriter.py +++ b/pywb/rewrite/test/test_cookie_rewriter.py @@ -12,6 +12,10 @@ r""" >>> rewrite_cookie('abc=def; Path=file.html; Expires=Wed, 13 Jan 2021 22:23:01 GMT') [('Set-Cookie', 'abc=def; Path=/pywb/20131226101010/http://example.com/some/path/file.html')] +# Cookie with invalid chars, not parsed +>>> rewrite_cookie('abc@def=123') +[] + """