public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/flatpak] rawhide: Add patches to fix Epiphany crashes
@ 2026-08-24 16:09 Michael Catanzaro
0 siblings, 0 replies; only message in thread
From: Michael Catanzaro @ 2026-08-24 16:09 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/flatpak
Branch : rawhide
Commit : 7ba4d88e060e5f8ffd9a6b78893ab8876d40b0c2
Author : Michael Catanzaro <mcatanzaro@gnome.org>
Date : 2026-08-24T11:09:33-05:00
Stats : +85/-0 in 3 file(s)
URL : https://src.fedoraproject.org/rpms/flatpak/c/7ba4d88e060e5f8ffd9a6b78893ab8876d40b0c2?branch=rawhide
Log:
Add patches to fix Epiphany crashes
---
diff --git a/eagain.patch b/eagain.patch
new file mode 100644
index 0000000..007e4d2
--- /dev/null
+++ b/eagain.patch
@@ -0,0 +1,35 @@
+From eef7f14c344723cb20bebd04dcc79be77363c3be Mon Sep 17 00:00:00 2001
+From: Sebastian Wick <sebastian.wick@redhat.com>
+Date: Tue, 18 Aug 2026 17:13:16 +0200
+Subject: [PATCH] chase: Handle EAGAIN from openat2
+
+From openat2(2):
+
+ EAGAIN how.resolve contains either RESOLVE_IN_ROOT or
+ RESOLVE_BENEATH, and the kernel could not ensure that a
+ ".." component didn't escape (due to a race condition or
+ potential attack). The caller may choose to retry the
+ openat2() call.
+
+We should handle this by simply retrying the syscall.
+---
+ glnx-chase.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/subprojects/libglnx/glnx-chase.c b/subprojects/libglnx/glnx-chase.c
+index 2251cb71f8..49e606a3fe 100644
+--- a/subprojects/libglnx/glnx-chase.c
++++ b/subprojects/libglnx/glnx-chase.c
+@@ -684,7 +684,10 @@ glnx_chaseat_full (int dirfd,
+ .resolve = openat2_resolve,
+ };
+
+- fd = openat2 (dirfd, path, &how, sizeof (how));
++ do
++ fd = openat2 (dirfd, path, &how, sizeof (how));
++ while (fd < 0 && errno == EAGAIN);
++
+ if (fd < 0)
+ {
+ /* If the syscall is not implemented (ENOSYS) or blocked by
+
diff --git a/fd-conflation.patch b/fd-conflation.patch
new file mode 100644
index 0000000..07b946c
--- /dev/null
+++ b/fd-conflation.patch
@@ -0,0 +1,45 @@
+From d443535cf3101abc7dde7e49d845bb8901482b84 Mon Sep 17 00:00:00 2001
+From: Sebastian Wick <sebastian.wick@redhat.com>
+Date: Tue, 18 Aug 2026 16:24:15 +0200
+Subject: [PATCH] portal: Account for source fds in fd_map_remap_fd max_fd
+ tracking
+
+fd_map_remap_fd assigns a temporary fd number (++max_fd) that may later
+be used as a conflict resolution target. If the source fd passed to
+fd_map_remap_fd is higher than max_fd, conflict resolution can assign
+a replacement value that collides with that source fd. In
+child_setup_func, the dup2 for the conflicting entry then overwrites
+the source fd before it is remapped, delivering the wrong fd to the
+child process.
+
+In practice this manifests as sandbox-expose-fd-ro passing a random fd
+(e.g. a socket) instead of the intended O_PATH fd to flatpak run via
+--ro-bind-fd, producing errors like:
+
+ error: /proc/self/fd/21 resolves to non-absolute path socket:[423446]
+
+Similar error have been observed in Epiphany/WebKit:
+https://bugs.webkit.org/show_bug.cgi?id=305344
+---
+ portal/flatpak-portal.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/portal/flatpak-portal.c b/portal/flatpak-portal.c
+index 03ba05aef9..12afa6315a 100644
+--- a/portal/flatpak-portal.c
++++ b/portal/flatpak-portal.c
+@@ -628,7 +628,13 @@ fd_map_remap_fd (GArray *fd_map,
+ FdMapEntry fd_map_entry;
+
+ /* Use a fd that hasn't been used yet. We might have to reshuffle
+- * fd_map_entry.to, a bit later. */
++ * fd_map_entry.to a bit later during conflict resolution, which
++ * assigns ++max_fd as replacement values. Account for the source fd
++ * in max_fd so those replacements can never collide with any source
++ * fd in the map. */
++ if (fd > *max_fd_in_out)
++ *max_fd_in_out = fd;
++
+ fd_map_entry.from = fd;
+ fd_map_entry.to = ++(*max_fd_in_out);
+ fd_map_entry.final = fd_map_entry.to;
diff --git a/flatpak.spec b/flatpak.spec
index 7a7ece9..989304d 100644
--- a/flatpak.spec
+++ b/flatpak.spec
@@ -25,6 +25,11 @@ Source0: https://github.com/flatpak/flatpak/releases/download/%{version}/
Source1: flatpak-add-fedora-repos.service
%endif
+# https://github.com/flatpak/flatpak/pull/6785
+Patch: fd-conflation.patch
+# https://github.com/flatpak/flatpak/pull/6787
+Patch: eagain.patch
+
# ostree not on i686 for RHEL 10
# https://github.com/containers/composefs/pull/229#issuecomment-1838735764
%if 0%{?rhel} >= 10
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-24 16:09 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-24 16:09 [rpms/flatpak] rawhide: Add patches to fix Epiphany crashes Michael Catanzaro
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox