2008-12-29 Adele Peterson <adele@apple.com>
authoradele@apple.com <adele@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 29 Dec 2008 21:42:33 +0000 (21:42 +0000)
committeradele@apple.com <adele@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 29 Dec 2008 21:42:33 +0000 (21:42 +0000)
        Reviewed by Brady Eidson.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=21797
        <rdar://problem/6310682> REGRESSION: Crash in CFHTTPCookieStorageCopy beneath WebCore::cookies() when
        running fast/dom/document-attribute-js-null.html and http/tests/security/cookies/create-document.html

        Return early if the document is trying to get or set a cookie with an empty cookie url.

        * dom/Document.cpp:
        (WebCore::Document::cookie):
        (WebCore::Document::setCookie):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39501 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/dom/Document.cpp

index 88218ac..7f3727e 100644 (file)
@@ -1,3 +1,17 @@
+2008-12-29  Adele Peterson  <adele@apple.com>
+
+        Reviewed by Brady Eidson.
+
+        Fix for https://bugs.webkit.org/show_bug.cgi?id=21797
+        <rdar://problem/6310682> REGRESSION: Crash in CFHTTPCookieStorageCopy beneath WebCore::cookies() when 
+        running fast/dom/document-attribute-js-null.html and http/tests/security/cookies/create-document.html
+        
+        Return early if the document is trying to get or set a cookie with an empty cookie url.
+
+        * dom/Document.cpp:
+        (WebCore::Document::cookie):
+        (WebCore::Document::setCookie):
+
 2008-12-28  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
 
         Reviewed by Sam Weinig.
index ed74d9d..040254e 100644 (file)
@@ -2902,7 +2902,11 @@ String Document::cookie() const
     if (page() && !page()->cookieEnabled())
         return String();
 
-    return cookies(this, cookieURL());
+    KURL cookieURL = this->cookieURL();
+    if (cookieURL.isEmpty())
+        return String();
+
+    return cookies(this, cookieURL);
 }
 
 void Document::setCookie(const String& value)
@@ -2910,7 +2914,11 @@ void Document::setCookie(const String& value)
     if (page() && !page()->cookieEnabled())
         return;
 
-    setCookies(this, cookieURL(), policyBaseURL(), value);
+    KURL cookieURL = this->cookieURL();
+    if (cookieURL.isEmpty())
+        return;
+
+    setCookies(this, cookieURL, policyBaseURL(), value);
 }
 
 String Document::referrer() const