Pada build Android 17 September 2026, wcscspn() dan wcspbrk() memperlakukan setiap wchar_t >= 0x100 sebagai kecocokan ketika himpunan penolakan memiliki dua karakter atau lebih yang semuanya kurang dari U+0100. Hal ini merusak pemindaian string lebar dengan pembatas ASCII seperti baris baru begitu teks memuat emoji, karakter CJK, Sirilik, Yunani, atau Latin Diperluas.
Bug ini berasal dari implementasi dengan tabel pencarian 256 byte yang berhenti memindai ketika menemukan karakter apa pun di atas U+00FF, dan keliru melaporkannya sebagai kecocokan. Perangkat yang menjalankan build September 2026 terdampak, termasuk Pixel 7 dan Pixel 8a, sedangkan Nothing Phone 2 dengan Android 16 tidak terdampak. Regresi ini muncul di antara sumber publik Android Juni 2026 dan build September.
Masalah ini memengaruhi aplikasi nyata seperti Visual Pinball, tempat emoji dalam komentar VBScript membuat lexer salah mengidentifikasi akhir baris, dan penanganan jalur file memperlakukan karakter >= U+0100 sebagai pola wildcard. Kasus uji seperti EXPECT_EQ(3u, wcscspn(L"a\u0100b\n", L"x\n")) dapat mengungkap cacat ini. Sumber publik Android Juni 2026 membangun wcscspn/wcspbrk yang benar dari external/llvm-libc, yang memastikan regresi terjadi pada pembaruan libc.so September.
Sumber: Hacker News · Diringkas oleh HeadlinesBriefing