Skip to content

REGRESSION(309394@main): [GLib] Web process launch aborts for unix: PULSE_SERVER values and abstract D-Bus addresses - #75651

Merged
webkit-commit-queue merged 1 commit into
WebKit:mainfrom
csaavedra:eng/GLib-Web-process-launch-aborts-for-unix-PULSE_SERVER-and-abstract-D-Bus-addresses
Oct 2, 2026
Merged

webkit-commit-queue merged 1 commit into
WebKit:mainfrom
csaavedra:eng/GLib-Web-process-launch-aborts-for-unix-PULSE_SERVER-and-abstract-D-Bus-addresses

Conversation

@csaavedra

@csaavedra csaavedra commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

9f57a50

REGRESSION(309394@main): [GLib] Web process launch aborts for unix: PULSE_SERVER values and abstract D-Bus addresses
https://bugs.webkit.org/show_bug.cgi?id=326070

Reviewed by Adrian Perez de Castro.

Two conversions from C string handling to spans in 309394@main lose
information at the edges of the string:

bindPulse() takes the socket path with span().subspan(5), which drops the
null terminator, so UTF8CStringView::fromUTF8() fails its RELEASE_ASSERT and
the UI process aborts as soon as a web process is launched with
PULSE_SERVER=unix:/path. Take the subspan from spanIncludingNullTerminator().

directoryContainingDBusSocket() tests the result of StringView::find() for
truth, but notFound is SIZE_MAX. For a unix: address without a path=
component, such as the unix:abstract= addresses dbus-launch produces, the
offset wraps to 4 and the function hands bubblewrap a relative path under the
current directory, which does not exist. The xdg-dbus-proxy launch then fails
and the UI process aborts with "Failed to fully launch dbus-proxy". Compare
against notFound, restoring the pre-309394@main behaviour of binding nothing.

* Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bindPulse):
(WebKit::directoryContainingDBusSocket):

Canonical link: https://commits.webkit.org/322488@main

60efd90

Misc iOS, visionOS, tvOS & watchOS macOS Linux Windows
✅ 🧪 style ✅ 🛠 ios ✅ 🛠 mac ✅ 🛠 wpe ⏳ 🛠 win
✅ 🛠 ios-sim ✅ 🛠 mac-AS-debug ⏳ 🧪 wpe-wk2 ⏳ 🧪 win-tests
✅ 🧪 webkitperl ⏳ 🧪 ios-wk2 ⏳ 🧪 api-mac ⏳ 🧪 api-wpe
  🧪 ios-wk2-wpt ⏳ 🧪 api-mac-debug ⏳ 🧪 jsc-wpe
⏳ 🧪 api-ios   🧪 mac-wk2 ✅ 🛠 gtk3-gcc
⏳ 🛠 ios-safer-cpp ⏳ 🧪 mac-AS-debug-wk2 ✅ 🛠 gtk
✅ 🛠 vision ⏳ 🧪 gtk-wk2
✅ 🛠 vision-sim ⏳ 🧪 mac-intel-wk2 ✅ 🧪 api-gtk
✅ 🛠 🧪 unsafe-merge ✅ 🧪 vision-wk2 ⏳ 🛠 mac-safer-cpp ✅ 🛠 playstation
✅ 🛠 tv ✅ 🧪 mac-site-isolation
✅ 🛠 tv-sim
✅ 🛠 watch
✅ 🛠 watch-sim

@csaavedra
csaavedra requested a review from a team as a code owner October 2, 2026 12:37
@csaavedra csaavedra self-assigned this Oct 2, 2026
@csaavedra csaavedra added the WebKitGTK Bugs related to the Gtk API layer. label Oct 2, 2026
@aperezdc aperezdc added the GLib Suggested Backport - 2.54 Suggest this merge request be backported to webkitglib/2.54 branch label Oct 2, 2026
@csaavedra csaavedra added the unsafe-merge-queue Applied to send a pull request to merge-queue, but skip building and testing label Oct 2, 2026
…ULSE_SERVER values and abstract D-Bus addresses

https://bugs.webkit.org/show_bug.cgi?id=326070

Reviewed by Adrian Perez de Castro.

Two conversions from C string handling to spans in 309394@main lose
information at the edges of the string:

bindPulse() takes the socket path with span().subspan(5), which drops the
null terminator, so UTF8CStringView::fromUTF8() fails its RELEASE_ASSERT and
the UI process aborts as soon as a web process is launched with
PULSE_SERVER=unix:/path. Take the subspan from spanIncludingNullTerminator().

directoryContainingDBusSocket() tests the result of StringView::find() for
truth, but notFound is SIZE_MAX. For a unix: address without a path=
component, such as the unix:abstract= addresses dbus-launch produces, the
offset wraps to 4 and the function hands bubblewrap a relative path under the
current directory, which does not exist. The xdg-dbus-proxy launch then fails
and the UI process aborts with "Failed to fully launch dbus-proxy". Compare
against notFound, restoring the pre-309394@main behaviour of binding nothing.

* Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bindPulse):
(WebKit::directoryContainingDBusSocket):

Canonical link: https://commits.webkit.org/322488@main
@webkit-commit-queue
webkit-commit-queue force-pushed the eng/GLib-Web-process-launch-aborts-for-unix-PULSE_SERVER-and-abstract-D-Bus-addresses branch from 60efd90 to 9f57a50 Compare October 2, 2026 13:12
@webkit-commit-queue

Copy link
Copy Markdown
Collaborator

Committed 322488@main (9f57a50): https://commits.webkit.org/322488@main

Reviewed commits have been landed. Closing PR #75651 and removing active labels.

@webkit-commit-queue
webkit-commit-queue merged commit 9f57a50 into WebKit:main Oct 2, 2026
@webkit-commit-queue webkit-commit-queue removed the unsafe-merge-queue Applied to send a pull request to merge-queue, but skip building and testing label Oct 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

GLib Suggested Backport - 2.54 Suggest this merge request be backported to webkitglib/2.54 branch WebKitGTK Bugs related to the Gtk API layer.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants