1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-13 19:29:53 +03:00

community/firefox-esr: fix segfaults

see issue #17131
This commit is contained in:
srcfn 2025-06-21 00:10:10 +00:00 committed by ptrcnull
parent 72e2e37568
commit 6c5d234b96
2 changed files with 61 additions and 1 deletions

View file

@ -5,7 +5,7 @@ pkgver=128.11.0
# Date of release, YY-MM-DD for metainfo file (see package()) # Date of release, YY-MM-DD for metainfo file (see package())
# https://www.mozilla.org/firefox/organizations/notes/ # https://www.mozilla.org/firefox/organizations/notes/
_releasedate=2025-05-27 _releasedate=2025-05-27
pkgrel=1 pkgrel=2
pkgdesc="Firefox web browser - Extended Support Release" pkgdesc="Firefox web browser - Extended Support Release"
url="https://www.mozilla.org/en-US/firefox/organizations/" url="https://www.mozilla.org/en-US/firefox/organizations/"
# s390x: blocked by lld # s390x: blocked by lld
@ -62,6 +62,7 @@ makedepends="
subpackages="$pkgname-intl" subpackages="$pkgname-intl"
source="https://ftp.mozilla.org/pub/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.xz source="https://ftp.mozilla.org/pub/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.xz
esr-metainfo.patch esr-metainfo.patch
bmo-1790526-store.patch
fix-fortify-system-wrappers.patch fix-fortify-system-wrappers.patch
fix-rust-target.patch fix-rust-target.patch
fix-webrtc-glibcisms.patch fix-webrtc-glibcisms.patch
@ -832,6 +833,7 @@ intl() {
sha512sums=" sha512sums="
80af64c1dce6d7a25111480567a3251cc2d1edce00acc4d85bbaa44590f5bbf4c0716f9490c3ab8ef1e6fc2bbabb2379029c2dee51ce477933c7a5935092d279 firefox-128.11.0esr.source.tar.xz 80af64c1dce6d7a25111480567a3251cc2d1edce00acc4d85bbaa44590f5bbf4c0716f9490c3ab8ef1e6fc2bbabb2379029c2dee51ce477933c7a5935092d279 firefox-128.11.0esr.source.tar.xz
520850448d3804e8ccfc17934c784ddbd760c93476e1a0051c029dde036d76a20c7116ccd645ebb888b09e7fa65766a0a9a139a80f478e3f6fb169b6cf68508f esr-metainfo.patch 520850448d3804e8ccfc17934c784ddbd760c93476e1a0051c029dde036d76a20c7116ccd645ebb888b09e7fa65766a0a9a139a80f478e3f6fb169b6cf68508f esr-metainfo.patch
ac16615aa0527935efbcebe9a95fc2498c807fcad2c57690ffae9b75aec6643dc4bfd90b76b4bf9f6e038ce46bc0a3441f9f391c665133a388c3c037d05b0d9e bmo-1790526-store.patch
19eea840aa9c1c21e7bd1f832ec078989fe6f08fca40baa271be7e74f1cffeb5ab8d3218a93e664b8d90a41506dede524e2a5174cd47580866109bc6711ea969 fix-fortify-system-wrappers.patch 19eea840aa9c1c21e7bd1f832ec078989fe6f08fca40baa271be7e74f1cffeb5ab8d3218a93e664b8d90a41506dede524e2a5174cd47580866109bc6711ea969 fix-fortify-system-wrappers.patch
cd68b89e29e5f6379fbd5679db27b9a5ef70ea65e51c0d0a8137e1f1fd210e35a8cfb047798e9549bc7275606d7ec5c8d8af1335d29da4699db7acd8bc7ff556 fix-rust-target.patch cd68b89e29e5f6379fbd5679db27b9a5ef70ea65e51c0d0a8137e1f1fd210e35a8cfb047798e9549bc7275606d7ec5c8d8af1335d29da4699db7acd8bc7ff556 fix-rust-target.patch
305c874fdea3096e9c4c6aa6520ac64bb1c347c4b59db8360096646593fe684c3b5377874d91cecd33d56d1410b4714fbdea2b514923723ecbeff79d51265d9b fix-webrtc-glibcisms.patch 305c874fdea3096e9c4c6aa6520ac64bb1c347c4b59db8360096646593fe684c3b5377874d91cecd33d56d1410b4714fbdea2b514923723ecbeff79d51265d9b fix-webrtc-glibcisms.patch

View file

@ -0,0 +1,58 @@
https://bugzilla.mozilla.org/show_bug.cgi?id=1790526
diff --git a/toolkit/components/sessionstore/SessionStoreParent.cpp b/toolkit/components/sessionstore/SessionStoreParent.cpp
index 8310278..e59e7e7 100644
--- a/toolkit/components/sessionstore/SessionStoreParent.cpp
+++ b/toolkit/components/sessionstore/SessionStoreParent.cpp
@@ -199,6 +199,18 @@ mozilla::ipc::IPCResult SessionStoreParent::RecvIncrementalSessionStoreUpdate(
const Maybe<FormData>& aFormData, const Maybe<nsPoint>& aScrollPosition,
uint32_t aEpoch) {
if (!aBrowsingContext.IsNull()) {
+ // The passed in BrowsingContext maybe already discarded and its mRawPtr is
+ // nullptr here. Let try to use the BrowsingContextId to get its
+ // Canonical one in the parent process for SessionStore update.
+ RefPtr<CanonicalBrowsingContext> bc;
+ if (aBrowsingContext.IsDiscarded()) {
+ bc = CanonicalBrowsingContext::Get(aBrowsingContext.ContextId());
+ } else {
+ bc = aBrowsingContext.GetMaybeDiscarded()->Canonical();
+ }
+ if (!bc) {
+ return IPC_OK();
+ }
if (aFormData.isSome()) {
mHasNewFormData = true;
}
@@ -206,9 +218,7 @@ mozilla::ipc::IPCResult SessionStoreParent::RecvIncrementalSessionStoreUpdate(
mHasNewScrollPosition = true;
}
- mSessionStore->UpdateSessionStore(
- aBrowsingContext.GetMaybeDiscarded()->Canonical(), aFormData,
- aScrollPosition, aEpoch);
+ mSessionStore->UpdateSessionStore(bc, aFormData, aScrollPosition, aEpoch);
}
return IPC_OK();
@@ -217,8 +227,19 @@ mozilla::ipc::IPCResult SessionStoreParent::RecvIncrementalSessionStoreUpdate(
mozilla::ipc::IPCResult SessionStoreParent::RecvResetSessionStore(
const MaybeDiscarded<BrowsingContext>& aBrowsingContext, uint32_t aEpoch) {
if (!aBrowsingContext.IsNull()) {
- mSessionStore->RemoveSessionStore(
- aBrowsingContext.GetMaybeDiscarded()->Canonical());
+ // The passed in BrowsingContext maybe already discarded and its mRawPtr is
+ // nullptr here. Let try to use the BrowsingContextId to get its
+ // Canonical one in the parent process for SessionStore update.
+ RefPtr<CanonicalBrowsingContext> bc;
+ if (aBrowsingContext.IsDiscarded()) {
+ bc = CanonicalBrowsingContext::Get(aBrowsingContext.ContextId());
+ } else {
+ bc = aBrowsingContext.GetMaybeDiscarded()->Canonical();
+ }
+ if (!bc) {
+ return IPC_OK();
+ }
+ mSessionStore->RemoveSessionStore(bc);
}
return IPC_OK();
}