]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
fix crash on invalid Cookie header 397/head
authorPatrick Swieskowski <pat@swieskowski.net>
Sun, 6 Nov 2011 16:56:00 +0000 (08:56 -0800)
committerPatrick Swieskowski <pat@swieskowski.net>
Sun, 6 Nov 2011 16:56:00 +0000 (08:56 -0800)
tornado/test/web_test.py
tornado/web.py

index 6898ffc03e77ba5a880408ecf01b1a38fab4d567..c5ae99a37784007031676824581f7677bab0953b 100644 (file)
@@ -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"),
index e87f330545042f05a98ccd43037aa234290e2819..ddedf88b6bbbe7b322da988be4d1123e1738b996 100644 (file)
@@ -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