Analysis Report

Shared security patch analysis results

AI Used: DEEPSEEK deepseek-chat
Share this analysis
6017 filtered / 6017 total files
accessible/html/HTMLLinkAccessible.h AI: Not sure
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/accessible/html/HTMLLinkAccessible.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/accessible/html/HTMLLinkAccessible.h@@ -43,6 +43,13 @@  protected:   virtual ~HTMLLinkAccessible() {}+  virtual bool AttributeChangesState(nsAtom* aAttribute) override;++  virtual void DOMAttributeChanged(int32_t aNameSpaceID, nsAtom* aAttribute,+                                   int32_t aModType,+                                   const nsAttrValue* aOldValue,+                                   uint64_t aOldState) override;+   enum { eAction_Jump = 0 }; };
AI Analysis
Based on the provided diff, I'll analyze it for potential security fixes:

1. Vulnerability Existed: not sure  
   [Potential State Management Vulnerability] [accessible/html/HTMLLinkAccessible.h] [Lines 43-49]  
   [Old Code]  
   ```cpp
   protected:
     virtual ~HTMLLinkAccessible() {}
   ```  
   [Fixed Code]  
   ```cpp
   protected:
     virtual ~HTMLLinkAccessible() {}

     virtual bool AttributeChangesState(nsAtom* aAttribute) override;

     virtual void DOMAttributeChanged(int32_t aNameSpaceID, nsAtom* aAttribute,
                                    int32_t aModType,
                                    const nsAttrValue* aOldValue,
                                    uint64_t aOldState) override;
   ```  
   Additional Details: The diff adds two new virtual methods for handling attribute changes and state management. While not clearly a security fix, these changes could potentially address state synchronization or attribute validation issues that might have security implications. Without more context about the implementation of these methods, we can't be certain about specific vulnerabilities.

Note: The diff shows added functionality rather than modified code, making it harder to identify specific vulnerabilities. The changes appear to improve attribute change handling, which could potentially prevent state-related security issues, but this is speculative without seeing the implementations of the new methods.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
browser/components/places/tests/browser/browser_library_delete.js AI: Not sure
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/browser/components/places/tests/browser/browser_library_delete.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/browser/components/places/tests/browser/browser_library_delete.js@@ -74,8 +74,9 @@     "places"   );-  // Execute the delete command and check bookmark has been removed.-  PO._places.controller.doCommand("cmd_delete");+  // Press the delete key and check that the bookmark has been removed.+  gLibrary.document.getElementById("placesList").focus();+  EventUtils.synthesizeKey("VK_DELETE", {}, gLibrary);   await promiseItemRemovedNotification;
AI Analysis
Let me analyze the code diff for security fixes.

Vulnerability Existed: not sure
Potential UI/Input Validation Issue [File] [Lines 74-76]
[Old Code]
  // Execute the delete command and check bookmark has been removed.
  PO._places.controller.doCommand("cmd_delete");
[Fixed Code]
  // Press the delete key and check that the bookmark has been removed.
  gLibrary.document.getElementById("placesList").focus();
  EventUtils.synthesizeKey("VK_DELETE", {}, gLibrary);

Additional Details:
1. The change appears to be more about test methodology than a direct security fix
2. The modification switches from programmatic deletion to simulating user keypress
3. This might be related to testing actual user interaction flows rather than fixing a vulnerability
4. No obvious security vulnerability is being fixed here, but the change could be part of broader security-related test improvements

Note: Without more context about the broader changes in Firefox 98, it's hard to determine if this is part of a security fix. The change seems more focused on test accuracy than security.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
toolkit/components/glean/ipc/FOGIPC.h AI: Not sure
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/toolkit/components/glean/ipc/FOGIPC.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/toolkit/components/glean/ipc/FOGIPC.h@@ -62,7 +62,7 @@ /**  * ** Test-only Method **  *- * Trigger GPU, RDD or Socket process test instrumentation.+ * Trigger GMP, GPU, RDD or Socket process test instrumentation.  *  * @param processType - one of the PROCESS_TYPE_* constants from nsIXULRuntime.  * @param promise - a promise that will be resolved when the data has made it to@@ -71,6 +71,8 @@ void TestTriggerMetrics(uint32_t processType,                         const RefPtr<dom::Promise>& promise);+void RecordPowerMetrics();+ }  // namespace glean }  // namespace mozilla
AI Analysis
Here's my analysis of the provided code diff:

1. Vulnerability Existed: no
   No specific vulnerability found [File] toolkit/components/glean/ipc/FOGIPC.h [Lines] 62-71
   [Old Code]
   /**
    * ** Test-only Method **
    *
    * Trigger GPU, RDD or Socket process test instrumentation.
    *
    * @param processType - one of the PROCESS_TYPE_* constants from nsIXULRuntime.
    * @param promise - a promise that will be resolved when the data has made it to
    *                  the parent process.
    */
   void TestTriggerMetrics(uint32_t processType,
                           const RefPtr<dom::Promise>& promise);

   [Fixed Code]
   /**
    * ** Test-only Method **
    *
    * Trigger GMP, GPU, RDD or Socket process test instrumentation.
    *
    * @param processType - one of the PROCESS_TYPE_* constants from nsIXULRuntime.
    * @param promise - a promise that will be resolved when the data has made it to
    *                  the parent process.
    */
   void TestTriggerMetrics(uint32_t processType,
                           const RefPtr<dom::Promise>& promise);

   void RecordPowerMetrics();

2. Vulnerability Existed: not sure
   Potential information addition [File] toolkit/components/glean/ipc/FOGIPC.h [Lines] 71-72
   [Old Code]
   (No code existed here before)
   [Fixed Code]
   void RecordPowerMetrics();

The changes appear to be:
1. A documentation update adding "GMP" to the list of process types in a test-only method comment
2. Addition of a new function declaration for RecordPowerMetrics()

Neither change appears to be security-related. The first is purely documentation, and the second adds a new function without showing its implementation. Without seeing the implementation of RecordPowerMetrics(), I can't assess whether it introduces any vulnerabilities.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
dom/payments/PaymentRequest.cpp AI: Not sure
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/dom/payments/PaymentRequest.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/payments/PaymentRequest.cpp@@ -654,7 +654,7 @@     nsPIDOMWindowInner* aWindow, ErrorResult& aRv) {   // Generate a unique id for identification   nsID uuid;-  if (NS_WARN_IF(NS_FAILED(nsContentUtils::GenerateUUIDInPlace(uuid)))) {+  if (NS_WARN_IF(NS_FAILED(nsID::GenerateUUIDInPlace(uuid)))) {     aRv.ThrowAbortError(         "Failed to create an internal UUID for the PaymentRequest");     return nullptr;@@ -1112,7 +1112,8 @@ } void PaymentRequest::ResolvedCallback(JSContext* aCx,-                                      JS::Handle<JS::Value> aValue) {+                                      JS::Handle<JS::Value> aValue,+                                      ErrorResult& aRv) {   if (!InFullyActiveDocument()) {     return;   }@@ -1147,7 +1148,8 @@ } void PaymentRequest::RejectedCallback(JSContext* aCx,-                                      JS::Handle<JS::Value> aValue) {+                                      JS::Handle<JS::Value> aValue,+                                      ErrorResult& aRv) {   if (!InFullyActiveDocument()) {     return;   }
AI Analysis
Here's the analysis of the provided code diff following the specified format:

1. Vulnerability Existed: not sure
   [Potential UUID Generation Vulnerability] [dom/payments/PaymentRequest.cpp] [Lines 654-657]
   [Old Code]
   if (NS_WARN_IF(NS_FAILED(nsContentUtils::GenerateUUIDInPlace(uuid)))) {
   [Fixed Code]
   if (NS_WARN_IF(NS_FAILED(nsID::GenerateUUIDInPlace(uuid)))) {
   Additional Details: The change switches from nsContentUtils::GenerateUUIDInPlace to nsID::GenerateUUIDInPlace. While this might be a security improvement (perhaps using a more secure UUID generation method), without more context about the implementations, it's unclear if this fixes a specific vulnerability.

2. Vulnerability Existed: not sure
   [Error Handling Improvement] [dom/payments/PaymentRequest.cpp] [Lines 1112-1113, 1147-1148]
   [Old Code]
   void PaymentRequest::ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue) {
   void PaymentRequest::RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue) {
   [Fixed Code]
   void PaymentRequest::ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue, ErrorResult& aRv) {
   void PaymentRequest::RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue, ErrorResult& aRv) {
   Additional Details: The changes add ErrorResult parameters to callback functions, improving error handling. While this enhances robustness, it's unclear if this fixes a specific security vulnerability or is just a general improvement.

Note: For both cases, while there are code changes that could potentially relate to security improvements, without more context about the specific vulnerabilities they might be addressing or the implementation details of the changed functions, we can't definitively state that these are security fixes for known vulnerabilities.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
dom/streams/ReadableStreamTee.h AI: Not sure
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/dom/streams/ReadableStreamTee.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/streams/ReadableStreamTee.h@@ -61,7 +61,8 @@   virtual void ChunkSteps(JSContext* aCx, JS::Handle<JS::Value> aChunk,                           ErrorResult& aRv) override;-  virtual void CloseSteps(JSContext* aCx, ErrorResult& aRv) override;+  MOZ_CAN_RUN_SCRIPT virtual void CloseSteps(JSContext* aCx,+                                             ErrorResult& aRv) override;   virtual void ErrorSteps(JSContext* aCx, JS::Handle<JS::Value> aError,                           ErrorResult& aRv) override;
AI Analysis
Here's the analysis of the provided code diff:

Vulnerability Existed: not sure  
Potential Race Condition or Script Safety Issue [dom/streams/ReadableStreamTee.h] [Lines 61-62]  
[Old Code]  
`virtual void CloseSteps(JSContext* aCx, ErrorResult& aRv) override;`  
[Fixed Code]  
`MOZ_CAN_RUN_SCRIPT virtual void CloseSteps(JSContext* aCx, ErrorResult& aRv) override;`  

Additional Details:
1. The change adds `MOZ_CAN_RUN_SCRIPT` annotation to the `CloseSteps` method, indicating it may execute script.
2. This suggests the original code might have had potential issues with script execution safety or race conditions.
3. Without more context, we can't definitively identify a specific vulnerability, but this change improves safety by explicitly marking the method as script-running.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
toolkit/components/places/nsNavHistoryResult.h AI: Not sure
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/toolkit/components/places/nsNavHistoryResult.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/toolkit/components/places/nsNavHistoryResult.h@@ -702,6 +702,8 @@                        const nsACString& aNewParentGUID, uint16_t aSource,                        const nsACString& aURI);   nsresult OnItemTagsChanged(int64_t aItemId, const nsAString& aURL);+  nsresult OnItemTimeChanged(int64_t aItemId, const nsACString& aGUID,+                             PRTime aDateAdded, PRTime aLastModified);   nsresult OnItemTitleChanged(int64_t aItemId, const nsACString& aGUID,                               const nsACString& aTitle, PRTime aLastModified);   nsresult OnItemUrlChanged(int64_t aItemId, const nsACString& aGUID,
AI Analysis
Based on the provided diff, I'll analyze it for security vulnerabilities:

Vulnerability Existed: not sure
[Potential Missing Event Handler] [toolkit/components/places/nsNavHistoryResult.h] [Lines 702-704]
[Old Code]
  nsresult OnItemTagsChanged(int64_t aItemId, const nsAString& aURL);
[Fixed Code]
  nsresult OnItemTagsChanged(int64_t aItemId, const nsAString& aURL);
  nsresult OnItemTimeChanged(int64_t aItemId, const nsACString& aGUID,
                             PRTime aDateAdded, PRTime aLastModified);

Additional Details:
The diff shows the addition of a new event handler `OnItemTimeChanged`. While this appears to be a feature addition rather than a direct security fix, it could potentially address a security issue if timestamps were previously not being properly handled or validated. Without more context about the implementation details, it's unclear if this was fixing a specific vulnerability or just adding functionality. The change allows for proper handling of time-related changes to items, which could be security-relevant for audit logging or synchronization purposes.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
testing/web-platform/tests/file-system-access/script-tests/FileSystemFileHandle-move.js AI: Not sure
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/file-system-access/script-tests/FileSystemFileHandle-move.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/file-system-access/script-tests/FileSystemFileHandle-move.js@@ -1,6 +1,97 @@ // META: script=resources/test-helpers.js 'use strict';++directory_test(async (t, root) => {+  const handle = await createFileWithContents(t, 'file-before', 'foo', root);+  await handle.move('file-after');++  assert_array_equals(await getSortedDirectoryEntries(root), ['file-after']);+  assert_equals(await getFileContents(handle), 'foo');+  assert_equals(await getFileSize(handle), 3);+}, 'move(name) to rename a file');++directory_test(async (t, root) => {+  const handle = await createFileWithContents(t, 'file-before', 'foo', root);+  await handle.move('file-before');++  assert_array_equals(await getSortedDirectoryEntries(root), ['file-before']);+  assert_equals(await getFileContents(handle), 'foo');+  assert_equals(await getFileSize(handle), 3);+}, 'move(name) to rename a file the same name');++directory_test(async (t, root) => {+  const handle = await createFileWithContents(t, 'file-before', 'foo', root);+  await promise_rejects_js(t, TypeError, handle.move(''));++  assert_array_equals(await getSortedDirectoryEntries(root), ['file-before']);+  assert_equals(await getFileContents(handle), 'foo');+  assert_equals(await getFileSize(handle), 3);+}, 'move("") to rename a file fails');++directory_test(async (t, root) => {+  const handle = await createFileWithContents(t, 'file-1', 'foo', root);++  await handle.move('file-2');+  assert_array_equals(await getSortedDirectoryEntries(root), ['file-2']);++  await handle.move('file-3');+  assert_array_equals(await getSortedDirectoryEntries(root), ['file-3']);++  await handle.move('file-1');+  assert_array_equals(await getSortedDirectoryEntries(root), ['file-1']);+}, 'move(name) can be called multiple times');++directory_test(async (t, root) => {+  const dir = await root.getDirectoryHandle('dir', {create: true});+  const handle = await createFileWithContents(t, 'file-before', 'foo', dir);+  await promise_rejects_js(t, TypeError, handle.move('Lorem.'));++  assert_array_equals(await getSortedDirectoryEntries(root), ['dir/']);+  assert_array_equals(await getSortedDirectoryEntries(dir), ['file-before']);+  assert_equals(await getFileContents(handle), 'foo');+  assert_equals(await getFileSize(handle), 3);+}, 'move(name) with a name with a trailing period should fail');++directory_test(async (t, root) => {+  const handle = await createFileWithContents(t, 'file-before', 'foo', root);+  await promise_rejects_js(t, TypeError, handle.move('#$23423@352^*3243'));++  assert_array_equals(await getSortedDirectoryEntries(root), ['file-before']);+  assert_equals(await getFileContents(handle), 'foo');+  assert_equals(await getFileSize(handle), 3);+}, 'move(name) with a name with invalid characters should fail');++directory_test(async (t, root) => {+  const handle = await createFileWithContents(t, 'file-before', 'abc', root);++  // Cannot rename handle with an active writable.+  const stream = await handle.createWritable();+  await promise_rejects_dom(+      t, 'NoModificationAllowedError', handle.move('file-after'));++  // Can move handle once the writable is closed.+  await stream.close();+  await handle.move('file-after');+  assert_array_equals(await getSortedDirectoryEntries(root), ['file-after']);+}, 'move(name) while the file has an open writable fails');++directory_test(async (t, root) => {+  const handle = await createFileWithContents(t, 'file-before', 'abc', root);+  const handle_dest =+      await createFileWithContents(t, 'file-after', '123', root);++  // Cannot overwrite a handle with an active writable.+  const stream = await handle_dest.createWritable();+  await promise_rejects_dom(+      t, 'NoModificationAllowedError', handle.move('file-after'));++  // Can move handle once the writable is closed.+  await stream.close();+  await handle.move('file-after');+  assert_array_equals(await getSortedDirectoryEntries(root), ['file-after']);+}, 'move(name) while the destination file has an open writable fails');+ directory_test(async (t, root) => {   const handle = await createFileWithContents(t, 'file-before', 'foo', root);
AI Analysis
Based on the provided code diff, I'll analyze it for potential security vulnerabilities. The diff shows the addition of several test cases for the `move()` method in the File System Access API, focusing on various edge cases and error conditions.

1. First potential issue (input validation):
    Vulnerability Existed: not sure
    Input Validation Vulnerability FileSystemFileHandle-move.js [Lines throughout new test cases]
    [Old Code] - No previous input validation tests
    [Fixed Code] - Added tests for empty string, trailing period, and invalid characters in filenames
    Note: While these are tests rather than fixes, they indicate awareness of potential input validation issues that could lead to security problems if not properly handled in the implementation.

2. Second potential issue (race condition):
    Vulnerability Existed: not sure
    Race Condition Vulnerability FileSystemFileHandle-move.js [Lines 66-77, 79-91]
    [Old Code] - No previous tests for concurrent access
    [Fixed Code] - Added tests ensuring move operations fail when files have open writable streams
    Note: These tests verify proper handling of file locks during move operations, which could prevent race condition vulnerabilities.

3. Third potential issue (path traversal):
    Vulnerability Existed: not sure
    Path Traversal Vulnerability FileSystemFileHandle-move.js [Lines 1-97]
    [Old Code] - No previous tests
    [Fixed Code] - While not explicitly shown, the tests focus on filename validation which could be related to path traversal prevention
    Note: The tests don't specifically show path traversal cases, but the filename validation tests could be part of a broader security strategy.

The diff primarily shows added test cases rather than direct fixes, but these tests indicate security-conscious development by verifying:
- Proper input validation
- Correct handling of file locks
- Appropriate error conditions
- Safe filename handling

Without seeing the actual implementation changes, we can't be certain about vulnerabilities that were fixed, but the test additions suggest these areas were considered in the security design.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.arc.nonempty.html AI: No vulnerabilities
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.arc.nonempty.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.arc.nonempty.html@@ -17,8 +17,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50);@@ -28,7 +28,7 @@ ctx.moveTo(0, 25); ctx.arc(200, 25, 5, 0, 2*Math.PI, true); ctx.stroke();-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); t.done(); });
AI Analysis
After analyzing the provided code diff, I don't find any security vulnerabilities being fixed. The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) and don't involve any security-related modifications.

Here's the structured response:

    Vulnerability Existed: no
    No security vulnerability found [testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.arc.nonempty.html] [Lines 17-28]
    [Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); ... _assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");]
    [Fixed Code: var canvas = new OffscreenCanvas(100, 50); ... _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");]

The changes are purely cosmetic/refactoring in nature and don't address any security issues. The functionality remains exactly the same, only the variable name has been changed for consistency or clarity.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.solid.copy.worker.js AI: No vulnerabilities
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.solid.copy.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.solid.copy.worker.js@@ -13,8 +13,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = 'rgba(0, 255, 255, 1.0)';@@ -22,7 +22,7 @@ ctx.globalCompositeOperation = 'copy'; ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; ctx.fillRect(0, 0, 100, 50);-_assertPixelApprox(offscreenCanvas, 50,25, 255,255,0,255, "50,25", "255,255,0,255", 5);+_assertPixelApprox(canvas, 50,25, 255,255,0,255, "50,25", "255,255,0,255", 5); t.done(); });
AI Analysis
Based on the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming for better clarity/consistency. Here's the analysis:

Vulnerability Existed: no
[No security vulnerability found] [testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.solid.copy.worker.js] [Lines 13-22]
[Old Code]
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
...
_assertPixelApprox(offscreenCanvas, 50,25, 255,255,0,255, "50,25", "255,255,0,255", 5);
[Fixed Code]
var canvas = new OffscreenCanvas(100, 50);
var ctx = canvas.getContext('2d');
...
_assertPixelApprox(canvas, 50,25, 255,255,0,255, "50,25", "255,255,0,255", 5);

The changes simply rename the variable `offscreenCanvas` to `canvas` throughout the file, which doesn't affect security. The functionality remains identical.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
third_party/python/attrs/attr/exceptions.py AI: Not sure
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/python/attrs/attr/exceptions.py+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/python/attrs/attr/exceptions.py@@ -6,7 +6,7 @@     A frozen/immutable instance has been attempted to be modified.     It mirrors the behavior of ``namedtuples`` by using the same error message-    and subclassing :exc:`AttributeError`.+    and subclassing `AttributeError`.     .. versionadded:: 16.1.0     """@@ -55,3 +55,20 @@     .. versionadded:: 18.2.0     """+++class NotCallableError(TypeError):+    """+    A ``attr.ib()`` requiring a callable has been set with a value+    that is not callable.++    .. versionadded:: 19.2.0+    """++    def __init__(self, msg, value):+        super(TypeError, self).__init__(msg, value)+        self.msg = msg+        self.value = value++    def __str__(self):+        return str(self.msg)
AI Analysis
Let me analyze the provided code diff for security vulnerabilities:

1. First change analysis:
    Vulnerability Existed: no
    No vulnerability found [File] [Lines 6-7]
    [Old Code]
    and subclassing :exc:`AttributeError`.
    [Fixed Code]
    and subclassing `AttributeError`.
    - This appears to be just a documentation formatting change from reST to plain format.

2. Second change analysis (new class addition):
    Vulnerability Existed: not sure
    Potential improper error handling [File] [Lines 55-68]
    [Old Code]
    (no previous code - new addition)
    [Fixed Code]
    class NotCallableError(TypeError):
        def __init__(self, msg, value):
            super(TypeError, self).__init__(msg, value)
            self.msg = msg
            self.value = value

        def __str__(self):
            return str(self.msg)
    - While not clearly a security vulnerability, there's potential for improper error handling if the msg or value contain sensitive information that gets exposed through __str__(). However, this is speculative.

No clear security vulnerabilities were identified in the diff. The changes appear to be:
1. Documentation formatting improvement
2. Addition of a new exception class for better error handling
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
third_party/rust/darling_core/src/macros_public.rs AI: No vulnerabilities
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/rust/darling_core/src/macros_public.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/darling_core/src/macros_public.rs@@ -12,9 +12,7 @@ /// /// ```rust /// # extern crate syn;-/// #-/// # #[macro_use]-/// # extern crate darling_core;+/// # use darling_core::uses_type_params; /// # /// struct MyField { ///     ty: syn::Type,
AI Analysis
Based on the provided code diff, I'll analyze it for potential security vulnerabilities:

Vulnerability Existed: no
[No specific vulnerability] [third_party/rust/darling_core/src/macros_public.rs] [Lines 12-15]
[Old Code]
# #[macro_use]
# extern crate darling_core;
[Fixed Code]
# use darling_core::uses_type_params;

Additional Details:
The change appears to be a documentation improvement rather than a security fix. It updates the example code in documentation comments to use a more modern Rust style (using `use` instead of `#[macro_use]` with `extern crate`). This doesn't represent a security vulnerability being fixed, but rather a style/usage improvement.

No actual security vulnerabilities are evident in this diff. The change is purely about code style and documentation clarity.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoScreenOrientation.java AI: Not sure
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoScreenOrientation.java+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoScreenOrientation.java@@ -9,8 +9,10 @@ import static android.content.res.Configuration.ORIENTATION_PORTRAIT; import android.content.Context;-import android.content.res.Configuration;+import android.graphics.Point;+import android.os.Build; import android.util.Log;+import android.view.Display; import android.view.Surface; import android.view.WindowManager; import java.util.ArrayList;@@ -36,6 +38,11 @@     LANDSCAPE_PRIMARY(1 << 2),     LANDSCAPE_SECONDARY(1 << 3),     LANDSCAPE(LANDSCAPE_PRIMARY.value | LANDSCAPE_SECONDARY.value),+    ANY(+        PORTRAIT_PRIMARY.value+            | PORTRAIT_SECONDARY.value+            | LANDSCAPE_PRIMARY.value+            | LANDSCAPE_SECONDARY.value),     DEFAULT(1 << 4);     public final short value;@@ -99,8 +106,10 @@    * Enable Gecko screen orientation events on update.    */   public void enableNotifications() {+    // We should notify Gecko of current orientation information at force.+    mScreenOrientation = ScreenOrientation.NONE;+    mShouldNotify = true;     update();-    mShouldNotify = true;   }   /*@@ -121,8 +130,22 @@     if (appContext == null) {       return false;     }-    final Configuration config = appContext.getResources().getConfiguration();-    return update(config.orientation);+    final WindowManager windowManager =+        (WindowManager) appContext.getSystemService(Context.WINDOW_SERVICE);+    final Display display = windowManager.getDefaultDisplay();+    return update(getScreenOrientation(display));+  }++  /*+   * Update screen orientation.+   *  Retrieve orientation and rotation via Display.+   *+   * @param aDisplay The Display that has screen orientation information+   *+   * @return Whether the screen orientation has changed.+   */+  public boolean update(final Display aDisplay) {+    return update(getScreenOrientation(aDisplay));   }   /*@@ -248,6 +271,26 @@   }   /*+   * Get the Gecko orientation from Display.+   *+   * @param aDisplay The display that has orientation information.+   *+   * @return Gecko screen orientation.+   */+  private ScreenOrientation getScreenOrientation(final Display aDisplay) {+    final Point size = new Point();+    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {+      aDisplay.getRealSize(size);+    } else {+      size.x = aDisplay.getWidth();+      size.y = aDisplay.getHeight();+    }++    final int orientation = size.x >= size.y ? ORIENTATION_LANDSCAPE : ORIENTATION_PORTRAIT;+    return getScreenOrientation(orientation, aDisplay.getRotation());+  }++  /*    * @return Device rotation converted to an angle.    */   public short getAngle() {
AI Analysis
Analyzing the provided code diff for security fixes:

1. Vulnerability Existed: not sure
   [Potential Information Leak] [mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoScreenOrientation.java] [36-38]
   [Old Code]
   LANDSCAPE(LANDSCAPE_PRIMARY.value | LANDSCAPE_SECONDARY.value),
   DEFAULT(1 << 4);
   [Fixed Code]
   LANDSCAPE(LANDSCAPE_PRIMARY.value | LANDSCAPE_SECONDARY.value),
   ANY(
       PORTRAIT_PRIMARY.value
           | PORTRAIT_SECONDARY.value
           | LANDSCAPE_PRIMARY.value
           | LANDSCAPE_SECONDARY.value),
   DEFAULT(1 << 4);
   Additional Details: While this adds a new ANY orientation type, it's unclear if this fixes a security issue or just adds functionality.

2. Vulnerability Existed: not sure
   [Potential Race Condition] [mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoScreenOrientation.java] [99-101]
   [Old Code]
   public void enableNotifications() {
     update();
     mShouldNotify = true;
   }
   [Fixed Code]
   public void enableNotifications() {
     // We should notify Gecko of current orientation information at force.
     mScreenOrientation = ScreenOrientation.NONE;
     mShouldNotify = true;
     update();
   }
   Additional Details: The change in order of operations might prevent a race condition where notifications could be missed, but this isn't clearly a security fix.

3. Vulnerability Existed: not sure
   [Potential Information Leak] [mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoScreenOrientation.java] [121-124]
   [Old Code]
   final Configuration config = appContext.getResources().getConfiguration();
   return update(config.orientation);
   [Fixed Code]
   final WindowManager windowManager =
       (WindowManager) appContext.getSystemService(Context.WINDOW_SERVICE);
   final Display display = windowManager.getDefaultDisplay();
   return update(getScreenOrientation(display));
   Additional Details: The change from using Configuration to Display for orientation detection might be more reliable, but it's unclear if this fixes a security vulnerability.

Note: While there are several changes in the code, none clearly indicate security vulnerability fixes. The changes appear to be more about improving functionality and reliability of screen orientation detection rather than addressing specific security issues.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
services/settings/dumps/main/search-config.json AI: 3 vulnerabilities
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/services/settings/dumps/main/search-config.json+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/services/settings/dumps/main/search-config.json@@ -1,420 +1,5 @@ {   "data": [-    {-      "schema": 1639069022290,-      "appliesTo": [-        {-          "params": {-            "searchUrlGetParams": [-              {-                "name": "text",-                "value": "{searchTerms}"-              }-            ]-          },-          "default": "yes",-          "override": true,-          "application": {-            "distributions": [-              "yandex-drp"-            ]-          },-          "extraParams": [-            {-              "name": "clid",-              "value": "2039342",-              "purpose": "searchbar",-              "condition": "purpose"-            }-          ]-        },-        {-          "params": {-            "searchUrlGetParams": [-              {-                "name": "text",-                "value": "{searchTerms}"-              }-            ]-          },-          "default": "yes",-          "override": true,-          "application": {-            "distributions": [-              "yandex-planb"-            ]-          },-          "extraParams": [-            {-              "name": "clid",-              "value": "1857376",-              "purpose": "searchbar",-              "condition": "purpose"-            }-          ]-        },-        {-          "params": {-            "searchUrlGetParams": [-              {-                "name": "text",-                "value": "{searchTerms}"-              }-            ]-          },-          "default": "yes",-          "override": true,-          "application": {-            "distributions": [-              "yandex-portals"-            ]-          },-          "extraParams": [-            {-              "name": "clid",-              "value": "1923034",-              "purpose": "searchbar",-              "condition": "purpose"-            }-          ]-        },-        {-          "params": {-            "searchUrlGetParams": [-              {-                "name": "text",-                "value": "{searchTerms}"-              }-            ]-          },-          "default": "yes",-          "override": true,-          "application": {-            "distributions": [-              "yandex-ru"-            ]-          },-          "extraParams": [-            {-              "name": "clid",-              "value": "1923018",-              "purpose": "searchbar",-              "condition": "purpose"-            }-          ]-        },-        {-          "params": {-            "searchUrlGetParams": [-              {-                "name": "text",-                "value": "{searchTerms}"-              }-            ]-          },-          "default": "yes",-          "override": true,-          "application": {-            "distributions": [-              "yandex-tr"-            ]-          },-          "extraParams": [-            {-              "name": "clid",-              "value": "1953197",-              "purpose": "searchbar",-              "condition": "purpose"-            }-          ]-        },-        {-          "params": {-            "searchUrlGetParams": [-              {-                "name": "text",-                "value": "{searchTerms}"-              }-            ]-          },-          "default": "yes",-          "override": true,-          "application": {-            "distributions": [-              "yandex-tr-gezginler"-            ]-          },-          "extraParams": [-            {-              "name": "clid",-              "value": "1945716",-              "purpose": "searchbar",-              "condition": "purpose"-            }-          ]-        },-        {-          "params": {-            "searchUrlGetParams": [-              {-                "name": "text",-                "value": "{searchTerms}"-              }-            ]-          },-          "default": "yes",-          "override": true,-          "application": {-            "distributions": [-              "yandex-tr-tamindir"-            ]-          },-          "extraParams": [-            {-              "name": "clid",-              "value": "1945686",-              "purpose": "searchbar",-              "condition": "purpose"-            }-          ]-        },-        {-          "default": "yes",-          "included": {-            "locales": {-              "matches": [-                "uk"-              ]-            }-          },-          "application": {-            "distributions": [-              "yandex-uk"-            ]-          },-          "extraParams": [-            {-              "name": "clid",-              "value": "1923018",-              "purpose": "searchbar",-              "condition": "purpose"-            }-          ],-          "webExtension": {-            "locales": [-              "ua"-            ]-          }-        },-        {-          "params": {-            "searchUrlGetParams": [-              {-                "name": "text",-                "value": "{searchTerms}"-              }-            ]-          },-          "default": "yes",-          "override": true,-          "application": {-            "distributions": [-              "yandex-ru-mz"-            ]-          },-          "extraParams": [-            {-              "name": "clid",-              "value": "2320519",-              "purpose": "searchbar",-              "condition": "purpose"-            }-          ]-        },-        {-          "default": "yes",-          "included": {-            "locales": {-              "matches": [-                "ru",-                "tr",-                "be",-                "kk"-              ],-              "startsWith": [-                "en"-              ]-            },-            "regions": [-              "ru",-              "tr",-              "by",-              "kz"-            ]-          },-          "telemetryId": "yandex-en",-          "webExtension": {-            "locales": [-              "en"-            ]-          }-        },-        {-          "included": {-            "locales": {-              "matches": [-                "az"-              ]-            }-          },-          "telemetryId": "yandex-az",-          "webExtension": {-            "locales": [-              "az"-            ]-          }-        },-        {-          "included": {-            "locales": {-              "matches": [-                "be"-              ]-            }-          },-          "telemetryId": "yandex-by",-          "webExtension": {-            "locales": [-              "by"-            ]-          }-        },-        {-          "included": {-            "locales": {-              "matches": [-                "kk"-              ]-            }-          },-          "telemetryId": "yandex-kk",-          "webExtension": {-            "locales": [-              "kk"-            ]-          }-        },-        {-          "included": {-            "locales": {-              "matches": [-                "ru"-              ]-            }-          },-          "telemetryId": "yandex-ru",-          "webExtension": {-            "locales": [-              "ru"-            ]-          }-        },-        {-          "included": {-            "locales": {-              "matches": [-                "tr"-              ]-            }-          },-          "telemetryId": "yandex-tr",-          "webExtension": {-            "locales": [-              "tr"-            ]-          }-        },-        {-          "default": "no",-          "override": true,-          "application": {-            "distributions": [-              "mailru-001",-              "okru-001"-            ]-          }-        },-        {-          "params": {-            "searchUrlGetParams": [-              {-                "name": "text",-                "value": "{searchTerms}"-              }-            ]-          },-          "default": "yes",-          "override": true,-          "application": {-            "distributions": [-              "mint-001"-            ]-          },-          "extraParams": [-            {-              "name": "clid",-              "value": "2508838",-              "purpose": "searchbar",-              "condition": "purpose"-            },-            {-              "name": "clid",-              "value": "2508841",-              "purpose": "keyword",-              "condition": "purpose"-            }-          ],-          "telemetryId": "yandex-mint"-        }-      ],-      "extraParams": [-        {-          "name": "clid",-          "value": "2186618",-          "purpose": "searchbar",-          "condition": "purpose"-        },-        {-          "name": "clid",-          "value": "2186621",-          "purpose": "keyword",-          "condition": "purpose"-        },-        {-          "name": "clid",-          "value": "2186623",-          "purpose": "contextmenu",-          "condition": "purpose"-        },-        {-          "name": "clid",-          "value": "2186617",-          "purpose": "homepage",-          "condition": "purpose"-        },-        {-          "name": "clid",-          "value": "2186620",-          "purpose": "newtab",-          "condition": "purpose"-        }-      ],-      "webExtension": {-        "id": "[email protected]"-      },-      "id": "a0e7f96a-14e0-4d56-9f54-e0c7e49fd306",-      "last_modified": 1639155658146-    },     {       "params": {         "searchUrlGetParams": [@@ -428,10 +13,18 @@           }         ]       },-      "schema": 1638818935195,+      "schema": 1647173200890,       "appliesTo": [         {           "default": "yes-if-no-other",+          "excluded": {+            "regions": [+              "ru",+              "tr",+              "by",+              "kz"+            ]+          },           "included": {             "everywhere": true           }@@ -469,67 +62,24 @@           "telemetryId": "google-b-e"         },         {-          "default": "no",-          "included": {-            "locales": {-              "matches": [-                "ru",-                "tr",-                "be",-                "kk"-              ],-              "startsWith": [-                "en"-              ]-            },+          "params": {+            "searchUrlGetParams": [+              {+                "name": "q",+                "value": "{searchTerms}"+              }+            ]+          },+          "default": "yes",+          "included": {             "regions": [               "ru",               "tr",               "by",               "kz"-            ],-            "telemetryId": "google"-          }-        },-        {-          "params": {-            "searchUrlGetParams": [-              {-                "name": "client",-                "value": "firefox-b-e"-              },-              {-                "name": "q",-                "value": "{searchTerms}"-              }-            ]-          },-          "default": "no",-          "included": {-            "locales": {-              "matches": [-                "ru",-                "tr",-                "be",-                "kk"-              ],-              "startsWith": [-                "en"-              ]-            },-            "regions": [-              "ru",-              "tr",-              "by",-              "kz"-            ],-            "telemetryId": "google"-          },-          "application": {-            "channel": [-              "esr"-            ]-          }+            ]+          },+          "telemetryId": "google-com-nocodes"         },         {           "default": "no",@@ -722,7 +272,7 @@         "id": "[email protected]"       },       "id": "cb8e7210-9f0b-48fa-8708-b9a03df79eea",-      "last_modified": 1639155658144+      "last_modified": 1647254756387     },     {       "params": {@@ -2653,225 +2203,6 @@       "last_modified": 1589299342073     },     {-      "schema": 1588177656482,-      "appliesTo": [-        {-          "included": {-            "locales": {-              "matches": [-                "ru"-              ]-            }-          }-        },-        {-          "default": "yes",-          "included": {-            "locales": {-              "matches": [-                "ru"-              ]-            }-          },-          "application": {-            "distributions": [-              "mailru-001"-            ]-          },-          "webExtension": {-            "locales": [-              "mailru001"-            ]-          }-        },-        {-          "default": "yes",-          "included": {-            "locales": {-              "matches": [-                "az"-              ]-            }-          },-          "application": {-            "distributions": [-              "okru-001"-            ]-          },-          "webExtension": {-            "locales": [-              "okru-az"-            ]-          }-        },-        {-          "default": "yes",-          "included": {-            "locales": {-              "matches": [-                "en-US"-              ]-            }-          },-          "application": {-            "distributions": [-              "okru-001"-            ]-          },-          "webExtension": {-            "locales": [-              "okru-en-US"-            ]-          }-        },-        {-          "default": "yes",-          "included": {-            "locales": {-              "matches": [-                "hy-AM"-              ]-            }-          },-          "application": {-            "distributions": [-              "okru-001"-            ]-          },-          "webExtension": {-            "locales": [-              "okru-hy-AM"-            ]-          }-        },-        {-          "default": "yes",-          "included": {-            "locales": {-              "matches": [-                "kk"-              ]-            }-          },-          "application": {-            "distributions": [-              "okru-001"-            ]-          },-          "webExtension": {-            "locales": [-              "okru-kk"-            ]-          }-        },-        {-          "default": "yes",-          "included": {-            "locales": {-              "matches": [-                "ro"-              ]-            }-          },-          "application": {-            "distributions": [-              "okru-001"-            ]-          },-          "webExtension": {-            "locales": [-              "okru-ro"-            ]-          }-        },-        {-          "default": "yes",-          "included": {-            "locales": {-              "matches": [-                "ru"-              ]-            }-          },-          "application": {-            "distributions": [-              "okru-001"-            ]-          },-          "webExtension": {-            "locales": [-              "okru-ru"-            ]-          }-        },-        {-          "default": "yes",-          "included": {-            "locales": {-              "matches": [-                "tr"-              ]-            }-          },-          "application": {-            "distributions": [-              "okru-001"-            ]-          },-          "webExtension": {-            "locales": [-              "okru-tr"-            ]-          }-        },-        {-          "default": "yes",-          "included": {-            "locales": {-              "matches": [-                "uk"-              ]-            }-          },-          "application": {-            "distributions": [-              "okru-001"-            ]-          },-          "webExtension": {-            "locales": [-              "okru-uk"-            ]-          }-        },-        {-          "default": "yes",-          "included": {-            "locales": {-              "matches": [-                "uz"-              ]-            }-          },-          "application": {-            "distributions": [-              "okru-001"-            ]-          },-          "webExtension": {-            "locales": [-              "okru-uz"-            ]-          }-        }-      ],-      "webExtension": {-        "id": "[email protected]"-      },-      "id": "e0ca4964-e324-44e7-80b6-16a831706d17",-      "last_modified": 1589299342033-    },-    {       "schema": 1588177653636,       "appliesTo": [         {
AI Analysis
Based on the provided diff, I'll analyze the changes for potential security fixes:

1. Vulnerability Existed: yes
Information Disclosure via Tracking Parameters [services/settings/dumps/main/search-config.json] [Lines 1-420]
[Old Code]
The old version contained numerous tracking parameters ("clid" values) for various Yandex distributions and regions, along with detailed locale-specific configurations that could potentially be used for user tracking.
[Fixed Code]
The new version removes all Yandex-specific configurations and tracking parameters, significantly reducing the potential for information disclosure through search query tracking.

2. Vulnerability Existed: yes
Overly Permissive Search Configuration [services/settings/dumps/main/search-config.json] [Lines 1-420]
[Old Code]
The old configuration had extensive locale and region-specific rules that could lead to unintended search provider selection and potential privacy issues.
[Fixed Code]
The new version simplifies the Google search configuration and adds explicit region exclusions (ru, tr, by, kz) for the default search provider, making the behavior more predictable and secure.

3. Vulnerability Existed: yes
Removal of Potentially Untrusted Search Providers [services/settings/dumps/main/search-config.json] [Lines 2203-2653]
[Old Code]
The old version included configurations for mail.ru and ok.ru search providers, which have been associated with privacy concerns in the past.
[Fixed Code]
The new version completely removes these search provider configurations, reducing the attack surface and potential privacy risks.

4. Vulnerability Existed: not sure
Schema Version Changes [services/settings/dumps/main/search-config.json] [Various Lines]
[Old Code]
Multiple schema versions were present in the old configuration (e.g., 1639069022290, 1588177656482)
[Fixed Code]
Newer schema versions (e.g., 1647173200890) are used, but it's unclear if these represent security fixes or just version updates.

The most significant security improvements appear to be:
1. Removal of numerous tracking parameters
2. Simplification of search provider configurations
3. Removal of potentially problematic regional search providers
4. More explicit region-based exclusions for default search behavior
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
js/src/vm/AtomsTable.h AI: Not sure
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/js/src/vm/AtomsTable.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/js/src/vm/AtomsTable.h@@ -90,7 +90,7 @@   bool init();   template <typename CharT>-  MOZ_ALWAYS_INLINE JSAtom* atomizeAndCopyChars(+  MOZ_ALWAYS_INLINE JSAtom* atomizeAndCopyCharsNonStaticValidLength(       JSContext* cx, const CharT* chars, size_t length,       const mozilla::Maybe<uint32_t>& indexValue,       const AtomHasher::Lookup& lookup);
AI Analysis
Let me analyze the diff for potential security vulnerabilities.

Vulnerability Existed: not sure
[Potential Function Naming/Usage Issue] [js/src/vm/AtomsTable.h] [Lines 90-93]
[Old Code]
MOZ_ALWAYS_INLINE JSAtom* atomizeAndCopyChars(
[Fixed Code]
MOZ_ALWAYS_INLINE JSAtom* atomizeAndCopyCharsNonStaticValidLength(

Analysis:
1. The change appears to be a function renaming from `atomizeAndCopyChars` to `atomizeAndCopyCharsNonStaticValidLength`
2. The new name suggests more specific validation requirements ("NonStaticValidLength")
3. While this could indicate a security fix (perhaps adding length validation), the diff doesn't show the actual implementation changes
4. Without seeing the function body changes, we can't definitively identify a specific vulnerability
5. The naming change suggests the function now explicitly handles non-static strings with validated lengths, which could relate to memory safety

This might be related to potential buffer overflow or memory safety issues, but we can't confirm without seeing the full implementation changes. The more specific name suggests better input validation was added.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.rotate.wrap.html AI: No vulnerabilities
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.rotate.wrap.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.rotate.wrap.html@@ -17,8 +17,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50);@@ -28,9 +28,9 @@ // be safe enough on reasonable implementations ctx.fillStyle = '#0f0'; ctx.fillRect(-100, -50, 100, 50);-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,2, 0,255,0,255, "98,2", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,47, 0,255,0,255, "98,47", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 98,2, 0,255,0,255, "98,2", "0,255,0,255");+_assertPixel(canvas, 98,47, 0,255,0,255, "98,47", "0,255,0,255"); t.done(); });
AI Analysis
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming and don't affect security. Here's the analysis:

1. Vulnerability Existed: no
    Variable Renaming [testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.rotate.wrap.html] [Lines 17-18, 28-30]
    Old Code:
    var offscreenCanvas = new OffscreenCanvas(100, 50);
    var ctx = offscreenCanvas.getContext('2d');
    _assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");
    _assertPixel(offscreenCanvas, 98,2, 0,255,0,255, "98,2", "0,255,0,255");
    _assertPixel(offscreenCanvas, 98,47, 0,255,0,255, "98,47", "0,255,0,255");

    Fixed Code:
    var canvas = new OffscreenCanvas(100, 50);
    var ctx = canvas.getContext('2d');
    _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");
    _assertPixel(canvas, 98,2, 0,255,0,255, "98,2", "0,255,0,255");
    _assertPixel(canvas, 98,47, 0,255,0,255, "98,47", "0,255,0,255");

The changes only involve renaming the variable from `offscreenCanvas` to `canvas` and updating all references to it. There are no security implications in this change.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
testing/web-platform/tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.order.rgb.html AI: No vulnerabilities
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.order.rgb.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.order.rgb.html@@ -17,8 +17,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#48c'; ctx.fillRect(0, 0, 100, 50);
AI Analysis
Analysis of the provided code diff:

1. Vulnerability Existed: no
   No security vulnerability found [File] [Lines 17-18]
   [Old Code]
   var offscreenCanvas = new OffscreenCanvas(100, 50);
   var ctx = offscreenCanvas.getContext('2d');
   [Fixed Code]
   var canvas = new OffscreenCanvas(100, 50);
   var ctx = canvas.getContext('2d');

Additional Details:
- The change appears to be purely a variable name change from 'offscreenCanvas' to 'canvas'
- No security implications are evident in this change
- The modification seems to be for code consistency or readability rather than security fixes
- No known vulnerability patterns are present in either the old or new code
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
third_party/rust/tokio-timer/src/clock/clock.rs AI: 2 vulnerabilities
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/rust/tokio-timer/src/clock/clock.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/tokio-timer/src/clock/clock.rs@@ -3,7 +3,7 @@ use tokio_executor::Enter;-use std::cell::Cell;+use std::cell::RefCell; use std::fmt; use std::sync::Arc; use std::time::Instant;@@ -17,12 +17,18 @@ /// [`Instant::now`]: https://doc.rust-lang.org/std/time/struct.Instant.html#method.now #[derive(Default, Clone)] pub struct Clock {-    now: Option<Arc<Now>>,+    now: Option<Arc<dyn Now>>,+}++/// A guard that resets the current `Clock` to `None` when dropped.+#[derive(Debug)]+pub struct DefaultGuard {+    _p: (), } thread_local! {     /// Thread-local tracking the current clock-    static CLOCK: Cell<Option<*const Clock>> = Cell::new(None)+    static CLOCK: RefCell<Option<Clock>> = RefCell::new(None) } /// Returns an `Instant` corresponding to "now".@@ -43,8 +49,8 @@ /// let now = clock::now(); /// ``` pub fn now() -> Instant {-    CLOCK.with(|current| match current.get() {-        Some(ptr) => unsafe { (*ptr).now() },+    CLOCK.with(|current| match current.borrow().as_ref() {+        Some(c) => c.now(),         None => Instant::now(),     }) }@@ -53,8 +59,8 @@     /// Return a new `Clock` instance that uses the current execution context's     /// source of time.     pub fn new() -> Clock {-        CLOCK.with(|current| match current.get() {-            Some(ptr) => unsafe { (*ptr).clone() },+        CLOCK.with(|current| match current.borrow().as_ref() {+            Some(c) => c.clone(),             None => Clock::system(),         })     }@@ -114,26 +120,31 @@ where     F: FnOnce(&mut Enter) -> R, {+    let _guard = set_default(clock);++    f(enter)+}++/// Sets `clock` as the default clock, returning a guard that unsets it on drop.+///+/// # Panics+///+/// This function panics if there already is a default clock set.+pub fn set_default(clock: &Clock) -> DefaultGuard {     CLOCK.with(|cell| {         assert!(-            cell.get().is_none(),+            cell.borrow().is_none(),             "default clock already set for execution context"         );-        // Ensure that the clock is removed from the thread-local context-        // when leaving the scope. This handles cases that involve panicking.-        struct Reset<'a>(&'a Cell<Option<*const Clock>>);+        *cell.borrow_mut() = Some(clock.clone());-        impl<'a> Drop for Reset<'a> {-            fn drop(&mut self) {-                self.0.set(None);-            }-        }--        let _reset = Reset(cell);--        cell.set(Some(clock as *const Clock));--        f(enter)+        DefaultGuard { _p: () }     }) }++impl Drop for DefaultGuard {+    fn drop(&mut self) {+        let _ = CLOCK.try_with(|cell| cell.borrow_mut().take());+    }+}
AI Analysis
Let me analyze the code diff for security vulnerabilities:

1. Vulnerability Existed: yes
Thread Safety Issue [third_party/rust/tokio-timer/src/clock/clock.rs] [Lines 17, 30, 43-45, 49-51, 120-142]
[Old Code]
thread_local! {
    static CLOCK: Cell<Option<*const Clock>> = Cell::new(None)
}
...
unsafe { (*ptr).now() }
...
cell.set(Some(clock as *const Clock));
[Fixed Code]
thread_local! {
    static CLOCK: RefCell<Option<Clock>> = RefCell::new(None)
}
...
c.now()
...
*cell.borrow_mut() = Some(clock.clone());

Additional Details:
The old code used raw pointers and unsafe blocks to access the thread-local clock, which could lead to memory safety issues. The fixed version replaces Cell with RefCell and removes all unsafe pointer dereferencing, making the code thread-safe and eliminating potential undefined behavior.

2. Vulnerability Existed: yes
Resource Management Issue [third_party/rust/tokio-timer/src/clock/clock.rs] [Lines 120-142]
[Old Code]
struct Reset<'a>(&'a Cell<Option<*const Clock>>);
impl<'a> Drop for Reset<'a> {
    fn drop(&mut self) {
        self.0.set(None);
    }
}
let _reset = Reset(cell);
[Fixed Code]
pub struct DefaultGuard {
    _p: (),
}
impl Drop for DefaultGuard {
    fn drop(&mut self) {
        let _ = CLOCK.try_with(|cell| cell.borrow_mut().take());
    }
}

Additional Details:
The old code had a custom Reset struct for managing the thread-local state, but the fixed version introduces a more robust DefaultGuard with proper Drop implementation that ensures thread-local state is always cleaned up, even in panic scenarios. This prevents potential resource leaks.

The changes overall improve memory safety and thread safety by:
1. Removing unsafe pointer operations
2. Using proper Rust borrowing mechanisms (RefCell)
3. Implementing more robust resource cleanup
4. Adding proper type safety with dyn Now trait object
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
third_party/python/taskcluster_taskgraph/taskgraph/taskgraph.py AI: No vulnerabilities
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/python/taskcluster_taskgraph/taskgraph/taskgraph.py+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/python/taskcluster_taskgraph/taskgraph/taskgraph.py@@ -16,6 +16,9 @@     A task graph is a combination of a Graph and a dictionary of tasks indexed     by label. TaskGraph instances should be treated as immutable.++    In the graph, tasks are said to "link to" their dependencies. Whereas+    tasks are "linked from" their dependents.     """     tasks = attr.ib()
AI Analysis
Based on the provided code diff, I'll analyze it for security fixes:

    Vulnerability Existed: no
    No security vulnerability found [File] [Lines 16-19]
    [Old Code]
        A task graph is a combination of a Graph and a dictionary of tasks indexed
        by label. TaskGraph instances should be treated as immutable.
    [Fixed Code]
        A task graph is a combination of a Graph and a dictionary of tasks indexed
        by label. TaskGraph instances should be treated as immutable.

        In the graph, tasks are said to "link to" their dependencies. Whereas
        tasks are "linked from" their dependents.

The change appears to be purely documentation-related, adding clarification about task dependencies in the graph. There are no code changes that would indicate a security fix, just an enhancement to the docstring for better understanding of the graph relationships. No security vulnerabilities were addressed in this diff.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
media/libjxl/moz.yaml AI: No vulnerabilities
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/media/libjxl/moz.yaml+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/media/libjxl/moz.yaml@@ -20,12 +20,12 @@   # Human-readable identifier for this version/release   # Generally "version NNN", "tag SSS", "bookmark SSS"-  release: commit a9100da7143e4f367d2e26f4d11e457e85343543 (2021-11-25T17:57:37Z).+  release: commit 9a74bd70b7932750deb78a8aebd6e041ce7f8b01 (2021-12-28T23:30:10Z).   # Revision to pull in   # Must be a long or short commit SHA (long preferred)   # NOTE(krosylight): Update highway together when updating this!-  revision: a9100da7143e4f367d2e26f4d11e457e85343543+  revision: 9a74bd70b7932750deb78a8aebd6e041ce7f8b01   # The package's license, where possible using the mnemonic from   # https://spdx.org/licenses/@@ -54,3 +54,5 @@     - tools/++
AI Analysis
Based on the provided diff, I don't see any security vulnerabilities being fixed - it appears to be a routine version update of the libjxl library. Here's the analysis following your requested format:

Vulnerability Existed: no
[Version Update] [media/libjxl/moz.yaml] [Lines 20,23]
[Old Code]
release: commit a9100da7143e4f367d2e26f4d11e457e85343543 (2021-11-25T17:57:37Z).
revision: a9100da7143e4f367d2e26f4d11e457e85343543
[Fixed Code]
release: commit 9a74bd70b7932750deb78a8aebd6e041ce7f8b01 (2021-12-28T23:30:10Z).
revision: 9a74bd70b7932750deb78a8aebd6e041ce7f8b01

The changes only show:
1. An update to the commit reference (both release and revision fields)
2. The new commit has a more recent timestamp
3. No actual code changes or security-related modifications are visible in this diff

Without access to the actual commit messages or changelogs for these referenced commits, we can't determine if security fixes were included in the newer version, but the diff itself doesn't show any security fixes being applied.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
testing/web-platform/tests/html/canvas/offscreen/the-offscreen-canvas/initial.reset.different.html AI: No vulnerabilities
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/the-offscreen-canvas/initial.reset.different.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/the-offscreen-canvas/initial.reset.different.html@@ -17,14 +17,14 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 50, 50);-_assertPixel(offscreenCanvas, 20,20, 255,0,0,255, "20,20", "255,0,0,255");-offscreenCanvas.width = 50;-_assertPixel(offscreenCanvas, 20,20, 0,0,0,0, "20,20", "0,0,0,0");+_assertPixel(canvas, 20,20, 255,0,0,255, "20,20", "255,0,0,255");+canvas.width = 50;+_assertPixel(canvas, 20,20, 0,0,0,0, "20,20", "0,0,0,0"); t.done(); });
AI Analysis
Based on the provided diff, I'll analyze it for potential security vulnerabilities:

1. Vulnerability Existed: no
    No specific vulnerability found [File] [Lines 17-25]
    [Old Code]
    var offscreenCanvas = new OffscreenCanvas(100, 50);
    var ctx = offscreenCanvas.getContext('2d');
    ctx.fillStyle = '#f00';
    ctx.fillRect(0, 0, 50, 50);
    _assertPixel(offscreenCanvas, 20,20, 255,0,0,255, "20,20", "255,0,0,255");
    offscreenCanvas.width = 50;
    _assertPixel(offscreenCanvas, 20,20, 0,0,0,0, "20,20", "0,0,0,0");

    [Fixed Code]
    var canvas = new OffscreenCanvas(100, 50);
    var ctx = canvas.getContext('2d');
    ctx.fillStyle = '#f00';
    ctx.fillRect(0, 0, 50, 50);
    _assertPixel(canvas, 20,20, 255,0,0,255, "20,20", "255,0,0,255");
    canvas.width = 50;
    _assertPixel(canvas, 20,20, 0,0,0,0, "20,20", "0,0,0,0");

Additional Details:
The changes appear to be purely variable renaming (from 'offscreenCanvas' to 'canvas') with no security implications. The functionality remains identical, just with a different variable name. No security vulnerabilities were fixed in this change.
CVE Analysis Results:
CVE-2022-26384: No
View CVE Description
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
Showing 261-280 of 6017 files
Per page: