diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2016-02-02 17:04:47 +0100 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2016-03-01 14:16:08 +0100 |
commit | 25c53ba3fe474a36639d1c5ed30510c921203fdc (patch) | |
tree | 709a710e970c3fb296b2fbeea04d8f7106059435 | |
parent | dd38602fa5ea3f0a51db5458e846f3756ab74e47 (diff) | |
download | freeipa-25c53ba3fe474a36639d1c5ed30510c921203fdc.tar.gz freeipa-25c53ba3fe474a36639d1c5ed30510c921203fdc.tar.xz freeipa-25c53ba3fe474a36639d1c5ed30510c921203fdc.zip |
cookie parser: do not fail on cookie with empty value
https://fedorahosted.org/freeipa/ticket/5709
Reviewed-By: Martin Basti <mbasti@redhat.com>
-rw-r--r-- | ipapython/cookie.py | 3 | ||||
-rw-r--r-- | ipatests/test_ipapython/test_cookie.py | 16 |
2 files changed, 18 insertions, 1 deletions
diff --git a/ipapython/cookie.py b/ipapython/cookie.py index b44522157..89c3e3cd6 100644 --- a/ipapython/cookie.py +++ b/ipapython/cookie.py @@ -272,8 +272,9 @@ class Cookie(object): if match: key = match.group(1) value = match.group(2) + # Double quoted value? - if value[0] == '"': + if value and value[0] == '"': if value[-1] == '"': value = value[1:-1] else: diff --git a/ipatests/test_ipapython/test_cookie.py b/ipatests/test_ipapython/test_cookie.py index 97cb79a07..6af447984 100644 --- a/ipatests/test_ipapython/test_cookie.py +++ b/ipatests/test_ipapython/test_cookie.py @@ -50,6 +50,22 @@ class TestParse(unittest.TestCase): with self.assertRaises(ValueError): cookies = Cookie.parse(s) + # 1 cookie with empty value + s = 'color=' + cookies = Cookie.parse(s) + self.assertEqual(len(cookies), 1) + cookie = cookies[0] + self.assertEqual(cookie.key, 'color') + self.assertEqual(cookie.value, '') + self.assertEqual(cookie.domain, None) + self.assertEqual(cookie.path, None) + self.assertEqual(cookie.max_age, None) + self.assertEqual(cookie.expires, None) + self.assertEqual(cookie.secure, None) + self.assertEqual(cookie.httponly, None) + self.assertEqual(str(cookie), "color=") + self.assertEqual(cookie.http_cookie(), "color=;") + # 1 cookie with name/value s = 'color=blue' cookies = Cookie.parse(s) |