In den Android-17-Builds vom September 2026 behandeln wcscspn() und wcspbrk() jedes wchar_t >= 0x100 als Treffer, wenn die Ablehnungsmenge zwei oder mehr Zeichen enthält, die alle kleiner als U+0100 sind. Dadurch bricht das Scannen von Wide-Strings mit ASCII-Trennzeichen wie Zeilenumbrüchen, sobald der Text Emojis, CJK-, kyrillische, griechische oder erweiterte lateinische Zeichen enthält.
Der Fehler geht auf eine Implementierung mit einer 256-Byte-Nachschlagetabelle zurück, die das Scannen beim ersten Zeichen jenseits von U+00FF abbricht und dieses fälschlich als Treffer meldet. Betroffen sind Geräte mit den Builds vom September 2026, darunter Pixel 7 und Pixel 8a, während das Nothing Phone 2 mit Android 16 nicht betroffen ist. Die Regression wurde zwischen den öffentlichen Android-Quellen vom Juni 2026 und den Builds vom September eingeführt.
Das Problem betrifft reale Anwendungen wie Visual Pinball, wo Emojis in VBScript-Kommentaren den Lexer dazu bringen, Zeilenenden falsch zu erkennen, und die Dateipfadverarbeitung Zeichen >= U+0100 als Wildcard-Muster behandelt. Ein Testfall wie EXPECT_EQ(3u, wcscspn(L"a\u0100b\n", L"x\n")) würde den Defekt sichtbar machen. Die öffentlichen Android-Quellen vom Juni 2026 bauen korrekte wcscspn/wcspbrk aus external/llvm-libc, was bestätigt, dass die Regression im September-Update der libc.so auftrat.
Quelle: Hacker News · Zusammengefasst von HeadlinesBriefing