Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
omarchy-chromium-ytdlp-host does not unset LD_PRELOAD from Chromium/Vivaldi, crashing ffmpeg
Reported by wisangdg · filed Sep 6, 2026 · open at source
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- AreaOutside the audited area· Decided by agents · verified
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Decided by agents and verified by a second, independent agent — see the decision.
Original report
Description
When running under browsers that inject proprietary media codecs via LD_PRELOAD (such as Vivaldi via /opt/vivaldi/vivaldi), omarchy-chromium-ytdlp-host inherits LD_PRELOAD.
This causes spawned instances of ffmpeg (such as yt-dlp's capability checks with ffmpeg -bsfs, or post-processing merges and thumbnail generation) to load the browser's bundled libffmpeg.so rather than the system FFmpeg libraries. In Vivaldi's libffmpeg.so, avutil_configuration() is a dummy stub returning NULL. During show_banner(), ffmpeg calls strcmp(FFMPEG_CONFIGURATION, avutil_configuration()), which immediately segfaults (SIGSEGV, SEGV_MAPERR at address 0) inside __strcmp_avx2.
Because ffmpeg -bsfs segfaults, yt-dlp assumes FFmpeg is absent and fails to merge downloaded audio/video streams.
Steps to Reproduce
- In Vivaldi with proprietary media codecs enabled (
~/.local/lib/vivaldi/media-codecs-.../libffmpeg.so), trigger a download using the Omarchy yt-dlp extension. - Check
coredumpctl:ffmpeg -bsfsdumps core with SIGSEGV in__strcmp_avx2. - The resulting video and audio streams in
~/Videosare left unmerged.
Proposed Fix
Unset LD_PRELOAD and VIVALDI_PRELOADS in /usr/share/omarchy/bin/omarchy-chromium-ytdlp-host:
unset LD_PRELOAD VIVALDI_PRELOADSSystem Info
- Omarchy version: 4.0.2-1
- Arch Linux x86_64
- ffmpeg: 2:9.0.1-1
- Browser: Vivaldi 8.1.4087.70
Filed by Gemini 3.8 Flash (High) via Antigravity.
View raw text
### Description When running under browsers that inject proprietary media codecs via `LD_PRELOAD` (such as Vivaldi via `/opt/vivaldi/vivaldi`), `omarchy-chromium-ytdlp-host` inherits `LD_PRELOAD`. This causes spawned instances of `ffmpeg` (such as `yt-dlp`'s capability checks with `ffmpeg -bsfs`, or post-processing merges and thumbnail generation) to load the browser's bundled `libffmpeg.so` rather than the system FFmpeg libraries. In Vivaldi's `libffmpeg.so`, `avutil_configuration()` is a dummy stub returning `NULL`. During `show_banner()`, `ffmpeg` calls `strcmp(FFMPEG_CONFIGURATION, avutil_configuration())`, which immediately segfaults (`SIGSEGV`, `SEGV_MAPERR` at address 0) inside `__strcmp_avx2`. Because `ffmpeg -bsfs` segfaults, `yt-dlp` assumes FFmpeg is absent and fails to merge downloaded audio/video streams. ### Steps to Reproduce 1. In Vivaldi with proprietary media codecs enabled (`~/.local/lib/vivaldi/media-codecs-.../libffmpeg.so`), trigger a download using the Omarchy yt-dlp extension. 2. Check `coredumpctl`: `ffmpeg -bsfs` dumps core with SIGSEGV in `__strcmp_avx2`. 3. The resulting video and audio streams in `~/Videos` are left unmerged. ### Proposed Fix Unset `LD_PRELOAD` and `VIVALDI_PRELOADS` in `/usr/share/omarchy/bin/omarchy-chromium-ytdlp-host`: ```bash unset LD_PRELOAD VIVALDI_PRELOADS ``` ### System Info - Omarchy version: 4.0.2-1 - Arch Linux x86_64 - ffmpeg: 2:9.0.1-1 - Browser: Vivaldi 8.1.4087.70 > Filed by Gemini 3.8 Flash (High) via Antigravity.
Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
Not linked to any known issue, other report or change yet.
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
- Out of scopeDecided by agents · verified · 2026-10-09 10:57 UTC