From 5285723ccf9b2797e6f4f43fb956e04eed0a71bd Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Thu, 15 May 2014 22:37:08 -0700 Subject: [PATCH] cookie_rewriter: catch CookieError and ignore erroring cookies --- pywb/rewrite/cookie_rewriter.py | 10 ++++++---- pywb/rewrite/test/test_cookie_rewriter.py | 4 ++++ 2 files changed, 10 insertions(+), 4 deletions(-) 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') +[] + """