40년 된 고전 게임에서 메모리 손상 버그 발견
Key Point
40년 전 게임에 숨어있던 메모리 손상 버그가 최근에 발견된 것은 게임 개발 초창기 컴파일러 결함과 테스트 범위의 한계를 보여주는 흥미로운 사례다.
핵심 요약
- 인포콤의 1983년 어드벤처 게임 '인피델'에서 와일드 포인터 메모리 손상 버그가 발견되었다.
- 버그는 DESERT-TO-TABLE 루틴에서 발생한다. 기본값으로 사용되는 DESERT-TABLE 배열이 전역변수인데도 ZIL 컴파일러는 이를 상수로 취급했다.
- 결과적으로 배열 주소 11129 대신 메모리 주소 30부터 덮어쓰기가 발생했다.