7
0
Files
nodejs-electron/RenderFrameHostImpl-use-after-free.patch

36 lines
1.9 KiB
Diff
Raw Normal View History

--- src/content/browser/renderer_host/render_frame_host_impl.cc.orig 2023-02-08 21:38:09.974003318 +0100
+++ src/content/browser/renderer_host/render_frame_host_impl.cc 2023-02-13 14:13:50.217792624 +0100
@@ -8,6 +8,7 @@
Accepting request 1169276 from home:dziobian:gulgul-ultron:19 - Update to electron 29.3.1 * ABI break: NODE_MODULE_VERSION is now 121 * Chromium 122.0.6261.156 * Node 20.9.0 * V8 12.2 * The deprecated gpu-process-crashed event on app has been removed. * The deprecated renderer-process-crashed event on app and crashed event on WebContents and <webview> have been removed. * Added WebContentsView and BaseWindow, replacing the now-deprecated BrowserView APIs. * Added new webUtils.getPathForFile method to replace File.path augmentation. * see https://www.electronjs.org/blog/electron-29-0 and https://github.com/electron/electron/releases/tag/v29.0.0 for more * Security fixes for Angle (CVE-2024-3516) and Compositing (CVE-2024-3157) - Drop upstreamed patches * atspi.patch * chromium-117-blink-BUILD-mnemonic.patch * local_frame-local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch * node-upgrade-llhttp-to-8.patch * policy_templates-deterministic.patch * v8-hide-private-symbols.patch * web_local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch - Add patches to fix build errors * aarch64-Xclang.patch * absl2023-encapsulated_web_transport-StrCat.patch * boringssl-internal-addc-cxx.patch * chromium-122-avoid-SFINAE-TypeConverter.patch * chromium-122-BookmarkNode-missing-operator.patch * distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch * distributed_point_functions-evaluate_prg_hwy-signature.patch * fake_ssl_socket_client-Wlto-type-mismatch.patch * grid_sizing_tree-Wchanges-meaning.patch * hit_test_request-missing-optional.patch * InternalAllocator-too-many-initializers.patch * mt21_util-flax-vector-conversions.patch * plus_address_types-missing-optional.patch * race_network_request_write_buffer_manager-missing-optional.patch * resolution_monitor-missing-bitset.patch * script_promise_resolver-explicit-specialization.patch * search_engine_choice_service-missing-optional.patch * system-yuv.patch - Replace abseil-remove-unused-targets.patch with chromium-122-abseil-shims.patch - Remove dead code from third_party/ * remove-dawn.patch * remove-openscreen.patch * remove-password-manager-and-policy.patch * remove-puffin.patch * remove-rust.patch * remove AFL-2.0, BSD-Protection and IJG from licence list, because the relevant libraries (xdg-mime, bsdiff and iccjpeg) are no longer shipped. - Leap, Fedora: use bundled re2 * drop replace-StringPiece-with-string_view.patch - Fedora 38: use bundled abseil * drop pending_task_safety_flag-abseil-2022-nullability.patch * drop thread_annotations-fix-build-with-system-abseil.patch - Leap 15.5: Reverse upstream changes to build with old wayland * wayland-proto-31-cursor-shape.patch - Leap 15.5/6: Reverse upstream changes to build with old ffmpeg * Cr122-ffmpeg-new-channel-layout.patch - aarch64: reduce debuginfo due to linker OOM OBS-URL: https://build.opensuse.org/request/show/1169276 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs-electron?expand=0&rev=141
2024-04-19 21:15:15 +00:00
#include <deque>
#include <limits>
#include <memory>
+#include <new>
Accepting request 1169276 from home:dziobian:gulgul-ultron:19 - Update to electron 29.3.1 * ABI break: NODE_MODULE_VERSION is now 121 * Chromium 122.0.6261.156 * Node 20.9.0 * V8 12.2 * The deprecated gpu-process-crashed event on app has been removed. * The deprecated renderer-process-crashed event on app and crashed event on WebContents and <webview> have been removed. * Added WebContentsView and BaseWindow, replacing the now-deprecated BrowserView APIs. * Added new webUtils.getPathForFile method to replace File.path augmentation. * see https://www.electronjs.org/blog/electron-29-0 and https://github.com/electron/electron/releases/tag/v29.0.0 for more * Security fixes for Angle (CVE-2024-3516) and Compositing (CVE-2024-3157) - Drop upstreamed patches * atspi.patch * chromium-117-blink-BUILD-mnemonic.patch * local_frame-local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch * node-upgrade-llhttp-to-8.patch * policy_templates-deterministic.patch * v8-hide-private-symbols.patch * web_local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch - Add patches to fix build errors * aarch64-Xclang.patch * absl2023-encapsulated_web_transport-StrCat.patch * boringssl-internal-addc-cxx.patch * chromium-122-avoid-SFINAE-TypeConverter.patch * chromium-122-BookmarkNode-missing-operator.patch * distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch * distributed_point_functions-evaluate_prg_hwy-signature.patch * fake_ssl_socket_client-Wlto-type-mismatch.patch * grid_sizing_tree-Wchanges-meaning.patch * hit_test_request-missing-optional.patch * InternalAllocator-too-many-initializers.patch * mt21_util-flax-vector-conversions.patch * plus_address_types-missing-optional.patch * race_network_request_write_buffer_manager-missing-optional.patch * resolution_monitor-missing-bitset.patch * script_promise_resolver-explicit-specialization.patch * search_engine_choice_service-missing-optional.patch * system-yuv.patch - Replace abseil-remove-unused-targets.patch with chromium-122-abseil-shims.patch - Remove dead code from third_party/ * remove-dawn.patch * remove-openscreen.patch * remove-password-manager-and-policy.patch * remove-puffin.patch * remove-rust.patch * remove AFL-2.0, BSD-Protection and IJG from licence list, because the relevant libraries (xdg-mime, bsdiff and iccjpeg) are no longer shipped. - Leap, Fedora: use bundled re2 * drop replace-StringPiece-with-string_view.patch - Fedora 38: use bundled abseil * drop pending_task_safety_flag-abseil-2022-nullability.patch * drop thread_annotations-fix-build-with-system-abseil.patch - Leap 15.5: Reverse upstream changes to build with old wayland * wayland-proto-31-cursor-shape.patch - Leap 15.5/6: Reverse upstream changes to build with old ffmpeg * Cr122-ffmpeg-new-channel-layout.patch - aarch64: reduce debuginfo due to linker OOM OBS-URL: https://build.opensuse.org/request/show/1169276 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs-electron?expand=0&rev=141
2024-04-19 21:15:15 +00:00
#include <optional>
Accepting request 1201463 from home:dziobian:gulgul-ultron:19 - Update to 31.6.0 * ABI break: NODE_MODULE_VERSION is now 125 * Chromium 126.0.6478.234 * Node 20.17.0 * V8 12.6 * Breaking change: Remove WebSQL support * Breaking change: nativeImage.toDataURL will preserve PNG colorspace * Added options parameter to Session.clearData API. * Extended webContents.setWindowOpenHandler to support manual creation of BrowserWindow. * clearData method added to Session * Extended WebContentsView to accept pre-existing webContents object. * see https://www.electronjs.org/blog/electron-31-0 and https://github.com/electron/electron/releases/tag/v31.0.0 for more - Drop no longer needed patches * electron-13-fix-use-thin-lto.patch * remove-openscreen.patch * system-yuv.patch * chromium-122-abseil-shims.patch * electron-16-std-vector-non-const.patch * fake_ssl_socket_client-Wlto-type-mismatch.patch * angle-FramebufferVk-powf.patch * span_reader-missing-optional.patch * bitset-missing-uint8_t-memcpy.patch * temporal_scalability_id_extractor-missing-bitset.patch * gpu_adapter_info-missing-optional.patch * first_party_sets_handler_database_helper-missing-optional.patch * async_iterable-forwarding.patch * script_streamer-atomic-include.patch - Add patches to fix build * fix-build-without-safebrowsing.patch * fix-build-without-supervised-users.patch * Cr126-abseil-shims.patch * absl-base-dynamic_annotations.patch * webp-no-sharpyuv.patch * http_auth_ntlm_mechanism-could-not-convert-to-base-span.patch * angle-State-constexpr.patch * color_provider-incomplete-ColorProviderInternal.patch * run_segmenter-missing-optional.patch * page_popup_controller-missing-optional.patch * native_css_paint_definition-expected-unqualified-id.patch * text_decoder-missing-optional.patch * real_time_reporting_bindings-forward-declaration.patch * blink-platform-INSIDE_BLINK-Wodr.patch * quiche-QuicIntervalDeque-no-match-for-operator-mm.patch * ConsumeRadii-linker-error.patch - Conditionally revert upstreamed ffmpeg-7-ffmpeg_video_decoder-reordered_opaque.patch on old ffmpeg - Revert upstream changes to build with system abseil (quiche-absl-HexStringToBytes.patch) - Refresh bad-font-gc patches from Debian - aarch64: disable LTO also on Fedora 39 due to OOM OBS-URL: https://build.opensuse.org/request/show/1201463 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs-electron?expand=0&rev=171
2024-09-16 18:02:24 +00:00
#include <string_view>
#include <tuple>
@@ -1818,7 +1819,12 @@ RenderFrameHostImpl::~RenderFrameHostImp
// `DocumentService` and `RenderFrameHostUserData` subclasses are still valid
// when their destructors run.
Accepting request 1169276 from home:dziobian:gulgul-ultron:19 - Update to electron 29.3.1 * ABI break: NODE_MODULE_VERSION is now 121 * Chromium 122.0.6261.156 * Node 20.9.0 * V8 12.2 * The deprecated gpu-process-crashed event on app has been removed. * The deprecated renderer-process-crashed event on app and crashed event on WebContents and <webview> have been removed. * Added WebContentsView and BaseWindow, replacing the now-deprecated BrowserView APIs. * Added new webUtils.getPathForFile method to replace File.path augmentation. * see https://www.electronjs.org/blog/electron-29-0 and https://github.com/electron/electron/releases/tag/v29.0.0 for more * Security fixes for Angle (CVE-2024-3516) and Compositing (CVE-2024-3157) - Drop upstreamed patches * atspi.patch * chromium-117-blink-BUILD-mnemonic.patch * local_frame-local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch * node-upgrade-llhttp-to-8.patch * policy_templates-deterministic.patch * v8-hide-private-symbols.patch * web_local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch - Add patches to fix build errors * aarch64-Xclang.patch * absl2023-encapsulated_web_transport-StrCat.patch * boringssl-internal-addc-cxx.patch * chromium-122-avoid-SFINAE-TypeConverter.patch * chromium-122-BookmarkNode-missing-operator.patch * distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch * distributed_point_functions-evaluate_prg_hwy-signature.patch * fake_ssl_socket_client-Wlto-type-mismatch.patch * grid_sizing_tree-Wchanges-meaning.patch * hit_test_request-missing-optional.patch * InternalAllocator-too-many-initializers.patch * mt21_util-flax-vector-conversions.patch * plus_address_types-missing-optional.patch * race_network_request_write_buffer_manager-missing-optional.patch * resolution_monitor-missing-bitset.patch * script_promise_resolver-explicit-specialization.patch * search_engine_choice_service-missing-optional.patch * system-yuv.patch - Replace abseil-remove-unused-targets.patch with chromium-122-abseil-shims.patch - Remove dead code from third_party/ * remove-dawn.patch * remove-openscreen.patch * remove-password-manager-and-policy.patch * remove-puffin.patch * remove-rust.patch * remove AFL-2.0, BSD-Protection and IJG from licence list, because the relevant libraries (xdg-mime, bsdiff and iccjpeg) are no longer shipped. - Leap, Fedora: use bundled re2 * drop replace-StringPiece-with-string_view.patch - Fedora 38: use bundled abseil * drop pending_task_safety_flag-abseil-2022-nullability.patch * drop thread_annotations-fix-build-with-system-abseil.patch - Leap 15.5: Reverse upstream changes to build with old wayland * wayland-proto-31-cursor-shape.patch - Leap 15.5/6: Reverse upstream changes to build with old ffmpeg * Cr122-ffmpeg-new-channel-layout.patch - aarch64: reduce debuginfo due to linker OOM OBS-URL: https://build.opensuse.org/request/show/1169276 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs-electron?expand=0&rev=141
2024-04-19 21:15:15 +00:00
document_associated_data_->RemoveAllServices();
- document_associated_data_.reset();
+ // HACK: Using .reset() here works on MSVC and LLVM libc++ because the std::optional
+ // is still valid while the destructor runs. This does not work on GNU libstdc++
+ // however which invalidates the optional before calling the destructor, causing a crash.
+ // Upstream bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1415154
+ document_associated_data_->~DocumentAssociatedData();
Accepting request 1169276 from home:dziobian:gulgul-ultron:19 - Update to electron 29.3.1 * ABI break: NODE_MODULE_VERSION is now 121 * Chromium 122.0.6261.156 * Node 20.9.0 * V8 12.2 * The deprecated gpu-process-crashed event on app has been removed. * The deprecated renderer-process-crashed event on app and crashed event on WebContents and <webview> have been removed. * Added WebContentsView and BaseWindow, replacing the now-deprecated BrowserView APIs. * Added new webUtils.getPathForFile method to replace File.path augmentation. * see https://www.electronjs.org/blog/electron-29-0 and https://github.com/electron/electron/releases/tag/v29.0.0 for more * Security fixes for Angle (CVE-2024-3516) and Compositing (CVE-2024-3157) - Drop upstreamed patches * atspi.patch * chromium-117-blink-BUILD-mnemonic.patch * local_frame-local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch * node-upgrade-llhttp-to-8.patch * policy_templates-deterministic.patch * v8-hide-private-symbols.patch * web_local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch - Add patches to fix build errors * aarch64-Xclang.patch * absl2023-encapsulated_web_transport-StrCat.patch * boringssl-internal-addc-cxx.patch * chromium-122-avoid-SFINAE-TypeConverter.patch * chromium-122-BookmarkNode-missing-operator.patch * distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch * distributed_point_functions-evaluate_prg_hwy-signature.patch * fake_ssl_socket_client-Wlto-type-mismatch.patch * grid_sizing_tree-Wchanges-meaning.patch * hit_test_request-missing-optional.patch * InternalAllocator-too-many-initializers.patch * mt21_util-flax-vector-conversions.patch * plus_address_types-missing-optional.patch * race_network_request_write_buffer_manager-missing-optional.patch * resolution_monitor-missing-bitset.patch * script_promise_resolver-explicit-specialization.patch * search_engine_choice_service-missing-optional.patch * system-yuv.patch - Replace abseil-remove-unused-targets.patch with chromium-122-abseil-shims.patch - Remove dead code from third_party/ * remove-dawn.patch * remove-openscreen.patch * remove-password-manager-and-policy.patch * remove-puffin.patch * remove-rust.patch * remove AFL-2.0, BSD-Protection and IJG from licence list, because the relevant libraries (xdg-mime, bsdiff and iccjpeg) are no longer shipped. - Leap, Fedora: use bundled re2 * drop replace-StringPiece-with-string_view.patch - Fedora 38: use bundled abseil * drop pending_task_safety_flag-abseil-2022-nullability.patch * drop thread_annotations-fix-build-with-system-abseil.patch - Leap 15.5: Reverse upstream changes to build with old wayland * wayland-proto-31-cursor-shape.patch - Leap 15.5/6: Reverse upstream changes to build with old ffmpeg * Cr122-ffmpeg-new-channel-layout.patch - aarch64: reduce debuginfo due to linker OOM OBS-URL: https://build.opensuse.org/request/show/1169276 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs-electron?expand=0&rev=141
2024-04-19 21:15:15 +00:00
+ new(&document_associated_data_) std::optional<DocumentAssociatedData>(std::nullopt);
Accepting request 1110783 from home:dziobian:gulgul-ultron:19 - Update to 25.8.0 * ABI break: NODE_MODULE_VERSION is now 116 * Chromium 114.0.5735.289 * Node 18.15.0 * V8 11.4 * Removed BrowserWindow scroll-touch-* events (since Electron 23) * Removed webContents.{de,in}crementCapturerCount(stayHidden, stayAwake) (since Electron 23) * Removed JXL image format support (since Electron 23) * API Changed: nativeImage.createThumbnailFromPath(path, size) (since Electron 24) - Use bundled vpx on Fedora ≤37 and Leap - Use bundled aom on Fedora and Leap - Drop support for Fedora 36 which is EOL - Drop upstreamed patches * CVE-2022-43548.patch * aggregatable_attribution_utils-do-not-assume-abseil-ABI.patch * angle-ShaderVars-missing-uint32_t.patch * blink-gcc13-missing-headers.patch * bluetooth_uuid-missing-uint8_t.patch * broker_file_permission-missing-uint64_t.patch * chromium-108-abseil-shims.patch * components-gcc13-missing-headers.patch * crashpad-elf_image_reader-ProgramHeaderTableSpecific-expected-unqualified-id.patch * d0aa9ad.patch * document_loader-private-DecodedBodyData.patch * effect_paint_property_node-Wchanges-meaning.patch * electron_serial_delegate-ambiguous-Observer.patch * extensions-gcc13-missing-headers.patch * first_party_set_parser-IssueWithMetadata-no-known-conversion.patch * gpu_feature_info-missing-uint32_t.patch * half_float-Wstrict-aliasing.patch * ipcz-buffer_id-Wnarrowing.patch * ipcz-safe_math-Wuninitialized.patch * net-gcc13-missing-headers.patch * net-third_party-quiche-gcc13-missing-headers.patch * one_writer_seqlock-missing-uintptr_t.patch * openscreen-gcc13-missing-headers.patch * passwords_counter-Wsubobject-linkage.patch * perfetto-uuid-missing-uint8_t.patch * print_dialog_gtk-no-kEnableOopPrintDriversJobPrint.patch * profiler-missing-uintptr_t.patch * reproducible-config.gypi.patch * select_file_dialog_linux_kde-Wodr.patch * shim_headers-fix-ninja.patch * static_constructors-Wstrict-aliasing.patch * string_hasher-type-pun-UB-causes-heap-corruption.patch * swiftshader-Constants-Wstrict-aliasing.patch * swiftshader-Half-Wstrict-aliasing.patch * swiftshader-LRUCache-missing-uint64_t.patch * target_property-missing-uint32_t.patch * ui-gcc13-missing-headers.patch * unzip-Wsubobject-linkage.patch * v8_initializer-PageAllocator-fpermissive.patch * vector_math_impl-Wstrict-aliasing.patch * web_contents_impl-Wsubobject-linkage.patch * webgl_image_conversion-Wstrict-aliasing.patch * webrtc-base64-missing-uint8_t.patch * xr_cube_map-Wstrict-aliasing.patch - Drop no longer relevant patches` * chromium-norar.patch * electron-13-fix-sql-virtualcursor-type.patch * enable-jxl.patch * system-jsoncpp.patch - Add patches to build with system libs * abseil-remove-unused-targets.patch * highway.gn * system-wayland.patch - Add patches to fix build errors * absl-uint128-do-not-assume-abi.patch * cpu-missing-uint8_t.patch * electron-24-components-missing-headers.patch * electron_api_app-GetPathConstant-non-constexpr.patch * electron_browser_context-missing-variant.patch * mojo_ukm_recorder-missing-WrapUnique.patch - Conditionally reverse upstream changes to build against stable avif * avif_image_decoder-repetitionCount-clli.patch - …and harfbuzz 4 * harfbuzz-replace-HbScopedPointer.patch - …and icu 69 * v8-regexp-parser-UCHAR_BASIC_EMOJI.patch - …and wayland 19 * wayland-WL-SINCE-VERSION.patch * wayland_data_drag_controller-WL_SURFACE_OFFSET_SINCE_VERSION.patch - Add backported chrome-gpu-does-not-load.patch OBS-URL: https://build.opensuse.org/request/show/1110783 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs-electron?expand=0&rev=89
2023-09-13 04:57:45 +00:00
// If this was the last active frame in the SiteInstanceGroup, the
// DecrementActiveFrameCount call will trigger the deletion of the
@@ -13254,7 +13260,9 @@ bool RenderFrameHostImpl::DidCommitNavig
// RenderFrameHost commits before the navigation commits. This happens
// when the current RenderFrameHost crashes before navigating to a new
// URL.
- document_associated_data_.emplace(*this,
+ // bsc#1227307 — same root cause as above
+ document_associated_data_->~DocumentAssociatedData();
+ new(&document_associated_data_) std::optional<DocumentAssociatedData>(std::in_place, *this,
navigation_request->GetDocumentToken());
} else {
// Cross-RenderFrameHost navigations that commit into a speculative