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

Log Message

Merge r255868 - [IPC hardening] Protect against bad identifier in CacheStorageEngineConnection::reference() / dereference()
https://bugs.webkit.org/show_bug.cgi?id=207302
<rdar://problem/59016099>

Reviewed by Alex Christensen.

* NetworkProcess/cache/CacheStorageEngineConnection.cpp:
(WebKit::CacheStorageEngineConnection::reference):
(WebKit::CacheStorageEngineConnection::dereference):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.28/Source/WebKit/ChangeLog (255932 => 255933)


--- releases/WebKitGTK/webkit-2.28/Source/WebKit/ChangeLog	2020-02-06 15:10:33 UTC (rev 255932)
+++ releases/WebKitGTK/webkit-2.28/Source/WebKit/ChangeLog	2020-02-06 15:10:36 UTC (rev 255933)
@@ -1,5 +1,17 @@
 2020-02-05  Chris Dumez  <[email protected]>
 
+        [IPC hardening] Protect against bad identifier in CacheStorageEngineConnection::reference() / dereference()
+        https://bugs.webkit.org/show_bug.cgi?id=207302
+        <rdar://problem/59016099>
+
+        Reviewed by Alex Christensen.
+
+        * NetworkProcess/cache/CacheStorageEngineConnection.cpp:
+        (WebKit::CacheStorageEngineConnection::reference):
+        (WebKit::CacheStorageEngineConnection::dereference):
+
+2020-02-05  Chris Dumez  <[email protected]>
+
         [IPC hardening] Protect against bad parameters in NetworkRTCProvider::createResolver()
         https://bugs.webkit.org/show_bug.cgi?id=207301
         <rdar://problem/59011449>

Modified: releases/WebKitGTK/webkit-2.28/Source/WebKit/NetworkProcess/cache/CacheStorageEngineConnection.cpp (255932 => 255933)


--- releases/WebKitGTK/webkit-2.28/Source/WebKit/NetworkProcess/cache/CacheStorageEngineConnection.cpp	2020-02-06 15:10:33 UTC (rev 255932)
+++ releases/WebKitGTK/webkit-2.28/Source/WebKit/NetworkProcess/cache/CacheStorageEngineConnection.cpp	2020-02-06 15:10:36 UTC (rev 255933)
@@ -116,6 +116,10 @@
 void CacheStorageEngineConnection::reference(uint64_t cacheIdentifier)
 {
     RELEASE_LOG_IF_ALLOWED("reference cache %" PRIu64, cacheIdentifier);
+    ASSERT(m_cachesLocks.isValidKey(cacheIdentifier));
+    if (!m_cachesLocks.isValidKey(cacheIdentifier))
+        return;
+
     auto& counter = m_cachesLocks.ensure(cacheIdentifier, []() {
         return 0;
     }).iterator->value;
@@ -126,6 +130,9 @@
 void CacheStorageEngineConnection::dereference(uint64_t cacheIdentifier)
 {
     RELEASE_LOG_IF_ALLOWED("dereference cache %" PRIu64, cacheIdentifier);
+    ASSERT(m_cachesLocks.isValidKey(cacheIdentifier));
+    if (!m_cachesLocks.isValidKey(cacheIdentifier))
+        return;
 
     auto referenceResult = m_cachesLocks.find(cacheIdentifier);
     if (referenceResult == m_cachesLocks.end())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to