From: Patrick Swieskowski Date: Sun, 6 Nov 2011 16:56:00 +0000 (-0800) Subject: fix crash on invalid Cookie header X-Git-Tag: v2.2.0~78^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F397%2Fhead;p=thirdparty%2Ftornado.git fix crash on invalid Cookie header --- diff --git a/tornado/test/web_test.py b/tornado/test/web_test.py index 6898ffc03..c5ae99a37 100644 --- a/tornado/test/web_test.py +++ b/tornado/test/web_test.py @@ -68,7 +68,7 @@ class CookieTest(AsyncHTTPTestCase, LogTrapTestCase): class GetCookieHandler(RequestHandler): def get(self): - self.write(self.get_cookie("foo")) + self.write(self.get_cookie("foo", "default")) class SetCookieDomainHandler(RequestHandler): def get(self): @@ -105,6 +105,9 @@ class CookieTest(AsyncHTTPTestCase, LogTrapTestCase): response = self.fetch("/get", headers={"Cookie": 'foo="bar"'}) self.assertEqual(response.body, b("bar")) + response = self.fetch("/get", headers={"Cookie": "/=exception;"}) + self.assertEqual(response.body, b("default")) + def test_set_cookie_domain(self): response = self.fetch("/set_domain") self.assertEqual(response.headers.get_list("Set-Cookie"), diff --git a/tornado/web.py b/tornado/web.py index e87f33054..ddedf88b6 100644 --- a/tornado/web.py +++ b/tornado/web.py @@ -322,7 +322,7 @@ class RequestHandler(object): def get_cookie(self, name, default=None): """Gets the value of the cookie with the given name, else default.""" - if name in self.request.cookies: + if self.request.cookies is not None and name in self.request.cookies: return self.request.cookies[name].value return default