Title: [255935] releases/WebKitGTK/webkit-2.28/Source
Revision
255935
Author
[email protected]
Date
2020-02-06 07:10:53 -0800 (Thu, 06 Feb 2020)

Log Message

Merge r255876 - [IPC hardening] Fail IPC decoding of invalid ClientOrigin objects
https://bugs.webkit.org/show_bug.cgi?id=207305
<rdar://problem/58797651>

Reviewed by Brent Fulgham.

Fail IPC decoding of invalid ClientOrigin objects (empty ClientOrigin or deleted value in a HashMap).

* page/ClientOrigin.h:
(WebCore::ClientOrigin::decode):
* page/SecurityOriginData.h:
(WebCore::SecurityOriginData::decode):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.28/Source/WebCore/ChangeLog (255934 => 255935)


--- releases/WebKitGTK/webkit-2.28/Source/WebCore/ChangeLog	2020-02-06 15:10:47 UTC (rev 255934)
+++ releases/WebKitGTK/webkit-2.28/Source/WebCore/ChangeLog	2020-02-06 15:10:53 UTC (rev 255935)
@@ -1,5 +1,20 @@
 2020-02-05  Chris Dumez  <[email protected]>
 
+        [IPC hardening] Fail IPC decoding of invalid ClientOrigin objects
+        https://bugs.webkit.org/show_bug.cgi?id=207305
+        <rdar://problem/58797651>
+
+        Reviewed by Brent Fulgham.
+
+        Fail IPC decoding of invalid ClientOrigin objects (empty ClientOrigin or deleted value in a HashMap).
+
+        * page/ClientOrigin.h:
+        (WebCore::ClientOrigin::decode):
+        * page/SecurityOriginData.h:
+        (WebCore::SecurityOriginData::decode):
+
+2020-02-05  Chris Dumez  <[email protected]>
+
         Regression(r248734) StorageAreaMap objects are getting leaked
         https://bugs.webkit.org/show_bug.cgi?id=207073
         <rdar://problem/59168065>

Modified: releases/WebKitGTK/webkit-2.28/Source/WebCore/page/ClientOrigin.h (255934 => 255935)


--- releases/WebKitGTK/webkit-2.28/Source/WebCore/page/ClientOrigin.h	2020-02-06 15:10:47 UTC (rev 255934)
+++ releases/WebKitGTK/webkit-2.28/Source/WebCore/page/ClientOrigin.h	2020-02-06 15:10:53 UTC (rev 255935)
@@ -80,10 +80,10 @@
     Optional<SecurityOriginData> topOrigin;
     Optional<SecurityOriginData> clientOrigin;
     decoder >> topOrigin;
-    if (!topOrigin)
+    if (!topOrigin || topOrigin->isEmpty())
         return WTF::nullopt;
     decoder >> clientOrigin;
-    if (!clientOrigin)
+    if (!clientOrigin || clientOrigin->isEmpty())
         return WTF::nullopt;
 
     return ClientOrigin { WTFMove(*topOrigin), WTFMove(*clientOrigin) };

Modified: releases/WebKitGTK/webkit-2.28/Source/WebCore/page/SecurityOriginData.h (255934 => 255935)


--- releases/WebKitGTK/webkit-2.28/Source/WebCore/page/SecurityOriginData.h	2020-02-06 15:10:47 UTC (rev 255934)
+++ releases/WebKitGTK/webkit-2.28/Source/WebCore/page/SecurityOriginData.h	2020-02-06 15:10:53 UTC (rev 255935)
@@ -119,7 +119,11 @@
     if (!decoder.decode(port))
         return WTF::nullopt;
     
-    return {{ WTFMove(*protocol), WTFMove(*host), WTFMove(port) }};
+    SecurityOriginData data { WTFMove(*protocol), WTFMove(*host), WTFMove(port) };
+    if (data.isHashTableDeletedValue())
+        return WTF::nullopt;
+
+    return data;
 }
 
 struct SecurityOriginDataHashTraits : WTF::SimpleClassHashTraits<SecurityOriginData> {

Modified: releases/WebKitGTK/webkit-2.28/Source/WebKit/NetworkProcess/cache/CacheStorageEngine.cpp (255934 => 255935)


--- releases/WebKitGTK/webkit-2.28/Source/WebKit/NetworkProcess/cache/CacheStorageEngine.cpp	2020-02-06 15:10:47 UTC (rev 255934)
+++ releases/WebKitGTK/webkit-2.28/Source/WebKit/NetworkProcess/cache/CacheStorageEngine.cpp	2020-02-06 15:10:53 UTC (rev 255935)
@@ -394,11 +394,6 @@
             return;
         }
 
-        if (!m_caches.isValidKey(origin)) {
-            callback(makeUnexpected(Error::Internal));
-            return;
-        }
-
         auto& caches = m_caches.ensure(origin, [&origin, this] {
             auto path = cachesRootPath(origin);
             return Caches::create(*this, WebCore::ClientOrigin { origin }, WTFMove(path));
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to