Hacker News인프라 · 데브옵스오늘의 주요

Android 17에서 wide char 함수 버그, 비ASCII 문자마다 멈춤

원제 AOSP Source Releases Are So Late Developers Disassemble Libraries to Report Bugs

227 포인트댓글 105
Key Point

AOSP 소스 공개 지연으로 개발자가 라이브러리를 역어셈블해야만 버그를 보고할 수 있는 상황이 드러났고, 일반 개발자에게는 심각한 호환성 문제를 유발한다.

핵심 요약

  • Android 17의 9월 빌드부터 wcscspn()과 wcspbrk() 함수에 버그가 발생했다.
  • 거부 문자 집합이 2개 이상이고 모두 U+0100 미만일 때, 첫 번째 U+0100 이상 문자에서 잘못 멈춘다.
  • 이모지, CJK, 키릴 자모, 그리스 문자 등 ASCII 범위 밖 문자가 있으면 구분 문자 검색이 실패한다.
  • 6월 공개된 android17-release 소스는 external/llvm-libc의 정상 코드를 사용했으나, 9월 빌드는 다른 코드로 회귀했다.
  • 256바이트 bool 테이블로 최적화된 경로에서 U+0100 이상 문자를 만나면 즉시 멈추는데, 이는 wcsspn()에만 맞고 wcscspn()에는 틀렸다.
  • 기존 테스트가 ASCII 입력만 사용해 이 버그를 놓쳤고, wcspbrk()는 wcscspn() 위에 구현되어 같은 버그를 상속받았다.
  • 실제로 Visual Pinball 라이브러리는 VBScript 주석의 이모지 처리 실패로 테이블 로드가 중단되었고, FileSystem.MoveFolder는 경로의 U+0100 이상 문자를 와일드카드로 오인했다.
  • Google 개발자는 누락된 테스트를 추가하고 영향받은 기기를 최소화하도록 백포트하겠다고 답변했다.
  • 댓글에서 AOSP 소스 공개 지연으로 버그 발견과 수정이 어려워졌다는 지적이 제기되었다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗