diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-03-17 13:49:04 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-03-17 13:49:04 +0000 |
| commit | 30bdabb2b0d01e1f89af18028ab1605db734bd4b (patch) | |
| tree | 0e716dca3daecb346395a6e9307593c52d4452ad | |
| parent | 8defa8fd2739c908f667c94fb489d299e190fc5b (diff) | |
Fixed #6764 -- Added some error checking around cookie decoding. Thanks,
Michael Axiak.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7257 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/http/__init__.py | 11 | ||||
| -rw-r--r-- | tests/regressiontests/requests/tests.py | 4 |
2 files changed, 12 insertions, 3 deletions
diff --git a/django/http/__init__.py b/django/http/__init__.py index 5df734cceb..5439aa6c63 100644 --- a/django/http/__init__.py +++ b/django/http/__init__.py @@ -1,5 +1,5 @@ import os -from Cookie import SimpleCookie +from Cookie import SimpleCookie, CookieError from pprint import pformat from urllib import urlencode from urlparse import urljoin @@ -239,8 +239,13 @@ class QueryDict(MultiValueDict): def parse_cookie(cookie): if cookie == '': return {} - c = SimpleCookie() - c.load(cookie) + try: + c = SimpleCookie() + c.load(cookie) + except CookieError: + # Invalid cookie + return {} + cookiedict = {} for key in c.keys(): cookiedict[key] = c.get(key).value diff --git a/tests/regressiontests/requests/tests.py b/tests/regressiontests/requests/tests.py index f32ef14ae9..aaaef1d8b0 100644 --- a/tests/regressiontests/requests/tests.py +++ b/tests/regressiontests/requests/tests.py @@ -31,4 +31,8 @@ GET:{}, POST:{}, COOKIES:{}, META:{}> + +>>> from django.http import parse_cookie +>>> parse_cookie('invalid:key=true') +{} """ |
