Android 17의 wcscspn() 버그: 이모지 하나가 문자열 검색을 망가뜨리다
AOSP Source Releases Are So Late Developers Disassemble Libraries to Report Bugs
2026년 9월 Android 17 빌드에서 wcscspn()과 wcspbrk()가 U+0100 이상 문자를 만나면 무조건 일치로 처리하는 버그가 발견됐다. ASCII 구분자로 와이드 문자열을 스캔하는 코드가 이모지, CJK, 키릴 문자 등이 포함된 텍스트에서 오작동한다. 공개된 6월 릴리스 소스에는 없던 회귀 버그로, Visual Pinball on Android가 테이블 로딩에 실패하는 실제 피해가 발생했다. bionic 테스트는 ASCII 입력만 사용해 이 문제를 잡지 못한다.
A character >= 0x100 cannot be in a set whose members are all < 0x100, so for wcscspn the scan must continue past it. The code stops instead.
HN 토론
210- kodebach
증명할 수는 없지만, 나는 여전히 이것이 (부분적으로는) 최근 EU 규정이 크게 역효과를 낸 결과라고 생각한다.
어떤 규정이었는지는 기억나지 않지만, 최근 규정 중 하나는 기기가 일정 기간 동안 업데이트를 받도록 의무화했다. 그 기간 내에 제조사는 모든 기기에 대해 각 업데이트를 짧은 시간 안에 제공해야 한다. 의도는 플래그십이 업데이트를 즉시 받고 저가형 기기는 몇 달을 기다려야 하는 것을 막으려는 것이었다.
하지만 오픈 소스에 관한 (역시 선의의) 문구 때문에, 소스 코드 공개가 업데이트의 첫 번째 릴리스로 간주되어 타이머가 시작된다.
나는 Google이 파트너들(아마 주로 Samsung)이 AOSP 위에 자신들의 업데이트 빌드를 완성할 시간을 더 주기 위해 공개 AOSP 업데이트를 지연시키고 있다고 확신한다.
- userbinator
한 글자: 단순 비교 루프. 맞다.
놀랍지 않게도, 나는 텍스트에서 Claudism의 흔적을 약간 느낀다.
AI가 소프트웨어의 소스를 "공개"하는 것은 지금까지 내가 본 것 중 가장 좋은 점 중 하나다.
- reddalo
Google의 새로운 모토는 "최대한 악해지자"인 것 같다.
우리는 사용자의 자유를 존중하는 Android 대안이 필요하다.
- evan_a_a
약간 과장된 제목이다. 버그 보고의 핵심은 라이브러리를 디스어셈블할 필요가 없다. 버그 작성자는 근본 원인 조사를 하기 위해 추가 단계를 밟았을 뿐이고, 물론 그에는 가벼운 리버싱 작업이 필요하다.
- dethos
우리는 세 번째 선택지가 필요하다. SailfishOS, Ubuntu Touch, Nura, 또는 상당한 커뮤니티를 확보하는 무엇이든 간에. 우리는 그 하나를 개발하고 투자하기 시작하면 된다. 완벽하지는 않겠지만, 사용자에게 대안과 통제권을 제공할 것이다.
- Retr0id
이것이 누군가 AI 기반 AOSP 디컴파일을 하게 만든다면 약간 재미있을 것이다.
- senfiaj
AI가 바이너리 디컴파일에 성공하기 시작했으니, 바이너리가 의도적으로 난독화되지 않는 한, 거의 "오픈 소스"라고 생각한다.
- duttonw
Google이 공개하지 않는 것은 이제 AI 시대에 도움이 되지 않을 것이다….