Public bug reported:
**Package:** fontconfig 2.17.1-3ubuntu1 (fontconfig-config, libfontconfig1 same
version)
**Also installed:** libqt6gui6 6.10.2+dfsg-7
**System:** Kubuntu 26.04 LTS, KDE Plasma 6.6.6, Wayland, kernel
7.0.0-34-generic
### What happened
Qt6/KDE applications (plasmashell, konsole, kate, krunner, and once Chrome)
crashed
repeatedly with SIGSEGV over several hours. All backtraces share the same chain:
#6 libfontconfig.so.1 (unknown frame)
#7 FcCharSetHasChar () from libfontconfig.so.1
#8 QFontEngineMultiFontConfig::shouldLoadFontEngineForCharacter(int,
unsigned int) const
#9 QFontEngineMulti::stringToCMap(QChar const*, int, QGlyphLayout*, int*,
QFlags<QFontEngine::ShaperFlag>) const
#10 QTextEngine::shapeText(int) const
#11 QTextEngine::shapeLine(QScriptLine const&)
In the crashing frame register rax = 0xfefefefefefefefe, i.e. fontconfig
dereferenced what looks like an uninitialised/poisoned FcCharSet pointer.
### What was ruled out
- `dpkg -V` for fontconfig, fontconfig-config, libfontconfig1: no differences.
- No recent fontconfig or Qt package updates before the crashes began.
- The font files themselves are not the cause (same fonts and rules work with a
clean cache).
- Plasma widgets / third-party plasmoids are not the cause.
### Isolation
- Running plasmashell with FONTCONFIG_FILE pointing to a copy of the same
fonts/rules and an empty cache in /tmp: no crash.
- A copy of /var/cache/fontconfig placed in /tmp: no crash.
- A copy of the affected ~/.cache/fontconfig: plasmashell crashed.
- Renaming ~/.cache/fontconfig and letting fontconfig rebuild it fixed
plasmashell.
### Cache layout after rebuild
~/.cache/fontconfig contains 32 entries x cache-12 plus symlinks cache-9/10/11
-> cache-12
(128 files, none zero-sized, no dangling links). /var/cache/fontconfig contains
only cache-9 (32 files).
### Not known
- Why the user cache became corrupted in the first place (no filesystem errors
noticed;
cause unknown).
- I could not reproduce the crash on the rebuilt cache. Processes started
before the
cache was rebuilt kept crashing (a konsole started earlier crashed at 12:46
after the
rebuild at 12:41), which suggests they held the old cache mapped in memory.
This is a hypothesis.
- Whether the bug is in fontconfig (missing validation of a corrupted cache) or
whether the cache was damaged externally.
### Expected behaviour
A corrupted or stale user cache should be detected and ignored/regenerated by
fontconfig
instead of causing a segfault in FcCharSetHasChar.
### Attachments
Backtraces (`coredumpctl gdb <PID> -A '-batch -ex "bt 12"'`) are pasted below.
Full core dumps and .crash files are NOT attached because they contain process
memory.
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=11,
no_tid=0) at ./nptl/pthread_kill.c:44
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=11,
no_tid=0) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (threadid=<optimized out>, signo=11) at
./nptl/pthread_kill.c:89
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=11) at
./nptl/pthread_kill.c:100
#3 0x0000749ee3445b7e in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#4 0x0000749ee5496d8d in KCrash::defaultCrashHandler(int) () from
/usr/lib/x86_64-linux-gnu/libKF6Crash.so.6
#5 <signal handler called>
#6 0x0000749ee24484fc in ?? () from
/usr/lib/x86_64-linux-gnu/libfontconfig.so.1
#7 0x0000749ee2448f79 in FcCharSetHasChar () from
/usr/lib/x86_64-linux-gnu/libfontconfig.so.1
#8 0x0000749ee481065c in
QFontEngineMultiFontConfig::shouldLoadFontEngineForCharacter(int, unsigned int)
const () from /usr/lib/x86_64-linux-gnu/libQt6Gui.so.6
#9 0x0000749ee4646323 in QFontEngineMulti::stringToCMap(QChar const*, int,
QGlyphLayout*, int*, QFlags<QFontEngine::ShaperFlag>) const () from
/usr/lib/x86_64-linux-gnu/libQt6Gui.so.6
#10 0x0000749ee46b20bd in QTextEngine::shapeText(int) const () from
/usr/lib/x86_64-linux-gnu/libQt6Gui.so.6
#11 0x0000749ee46b2c2f in QTextEngine::shapeLine(QScriptLine const&) () from
/usr/lib/x86_64-linux-gnu/libQt6Gui.so.6
Config file used: ~/.config/fontconfig/fonts.conf (2054 bytes) — can
attach if requested.
ProblemType: Bug
DistroRelease: Ubuntu 26.04
Package: fontconfig 2.17.1-3ubuntu1
ProcVersionSignature: Ubuntu 7.0.0-34.34-generic 7.0.14
Uname: Linux 7.0.0-34-generic x86_64
ApportVersion: 2.34.1-0ubuntu0.1
Architecture: amd64
CasperMD5CheckResult: unknown
CurrentDesktop: KDE
Date: Thu Sep 24 13:04:02 2026
InstallationDate: Installed on 2026-06-23 (93 days ago)
InstallationMedia: Kubuntu 26.04 "Resolute Raccoon" - Release amd64 (20260423)
SourcePackage: fontconfig
UpgradeStatus: No upgrade log present (probably fresh install)
** Affects: fontconfig (Ubuntu)
Importance: Undecided
Status: New
** Tags: amd64 apport-bug resolute wayland-session
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2168420
Title:
libfontconfig: SIGSEGV in FcCharSetHasChar (rax=0xfefefefefefefefe)
in Qt6 apps with a user font cache in ~/.cache/fontconfig
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/fontconfig/+bug/2168420/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs