[gnome-build-meta/mcatanzaro/safarileaks] Add WebKitGTK patch for Safari leaks vulnerability




commit 4fcf098677723c45cab1bb0aad1a8cabe299b909
Author: Michael Catanzaro <mcatanzaro redhat com>
Date:   Thu Jan 20 21:15:58 2022 -0600

    Add WebKitGTK patch for Safari leaks vulnerability
    
    See: https://safarileaks.com/

 elements/sdk/webkitgtk.inc        |  2 ++
 files/webkitgtk/safarileaks.patch | 26 ++++++++++++++++++++++++++
 2 files changed, 28 insertions(+)
---
diff --git a/elements/sdk/webkitgtk.inc b/elements/sdk/webkitgtk.inc
index 6cb9d0b30..8701ae89f 100644
--- a/elements/sdk/webkitgtk.inc
+++ b/elements/sdk/webkitgtk.inc
@@ -8,6 +8,8 @@ sources:
   path: files/webkitgtk/toolchain.arm
 - kind: patch
   path: files/webkitgtk/fix-build.patch
+- kind: patch
+  path: files/webkitgtk/safarileaks.patch
 
 build-depends:
 - sdk-deps/bubblewrap.bst
diff --git a/files/webkitgtk/safarileaks.patch b/files/webkitgtk/safarileaks.patch
new file mode 100644
index 000000000..b439a1fcf
--- /dev/null
+++ b/files/webkitgtk/safarileaks.patch
@@ -0,0 +1,26 @@
+diff --git a/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp 
b/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp
+index 7456a93c5a33..d26693180846 100644
+--- a/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp
++++ b/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp
+@@ -530,6 +530,9 @@ void IDBServer::getAllDatabaseNamesAndVersions(IDBConnectionIdentifier serverCon
+     HashSet<String> visitedDatabasePaths;
+ 
+     for (auto& database : m_uniqueIDBDatabaseMap.values()) {
++        if (database->identifier().origin() != origin)
++            continue;
++
+         auto path = database->filePath();
+         if (!path.isEmpty())
+             visitedDatabasePaths.add(path);
+diff --git a/Source/WebCore/page/ClientOrigin.h b/Source/WebCore/page/ClientOrigin.h
+index d773d9b312b3..f4345ae4a1c2 100644
+--- a/Source/WebCore/page/ClientOrigin.h
++++ b/Source/WebCore/page/ClientOrigin.h
+@@ -37,6 +37,7 @@ struct ClientOrigin {
+ 
+     unsigned hash() const;
+     bool operator==(const ClientOrigin&) const;
++    bool operator!=(const ClientOrigin& other) const { return !(*this == other); }
+ 
+     template<class Encoder> void encode(Encoder&) const;
+     template<class Decoder> static std::optional<ClientOrigin> decode(Decoder&);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]