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
This commit is contained in:
Malcolm Tredinnick 2008-03-17 13:49:04 +00:00
parent 8defa8fd27
commit 30bdabb2b0
2 changed files with 12 additions and 3 deletions

View File

@ -1,5 +1,5 @@
import os import os
from Cookie import SimpleCookie from Cookie import SimpleCookie, CookieError
from pprint import pformat from pprint import pformat
from urllib import urlencode from urllib import urlencode
from urlparse import urljoin from urlparse import urljoin
@ -239,8 +239,13 @@ class QueryDict(MultiValueDict):
def parse_cookie(cookie): def parse_cookie(cookie):
if cookie == '': if cookie == '':
return {} return {}
c = SimpleCookie() try:
c.load(cookie) c = SimpleCookie()
c.load(cookie)
except CookieError:
# Invalid cookie
return {}
cookiedict = {} cookiedict = {}
for key in c.keys(): for key in c.keys():
cookiedict[key] = c.get(key).value cookiedict[key] = c.get(key).value

View File

@ -31,4 +31,8 @@ GET:{},
POST:{}, POST:{},
COOKIES:{}, COOKIES:{},
META:{}> META:{}>
>>> from django.http import parse_cookie
>>> parse_cookie('invalid:key=true')
{}
""" """