HeadlinesBriefing HeadlinesBriefing.com

Error de caracteres anchos en Android afecta emoji y CJK

Hacker News •
×

En las compilaciones de Android 17 de septiembre de 2026, wcscspn() y wcspbrk() tratan cada wchar_t >= 0x100 como una coincidencia cuando el conjunto de rechazo tiene dos o más caracteres, todos menores que U+0100. Esto rompe el escaneo de cadenas anchas con delimitadores ASCII como los saltos de línea cuando el texto contiene emoji, caracteres CJK, cirílicos, griegos o latinos extendidos.

El error procede de una implementación con una tabla de búsqueda de 256 bytes que deja de escanear al encontrar cualquier carácter por encima de U+00FF, informándolo incorrectamente como coincidencia. Están afectados los dispositivos con las compilaciones de septiembre de 2026, incluidos Pixel 7 y Pixel 8a, mientras que Nothing Phone 2 con Android 16 no se ve afectado. La regresión se introdujo entre las fuentes públicas de Android de junio de 2026 y las compilaciones de septiembre.

El problema afecta a aplicaciones reales como Visual Pinball, donde los emoji en los comentarios de VBScript hacen que el analizador léxico identifique mal los finales de línea, y el manejo de rutas de archivo trata los caracteres >= U+0100 como patrones comodín. Un caso de prueba como EXPECT_EQ(3u, wcscspn(L"a\u0100b\n", L"x\n")) pondría de manifiesto el defecto. Las fuentes públicas de Android de junio de 2026 compilan wcscspn/wcspbrk correctos desde external/llvm-libc, lo que confirma que la regresión se produjo en la actualización de septiembre de libc.so.

Fuente: Hacker News · Resumido por HeadlinesBriefing