Planetfall は昨日公式リリースされましたが、私はInfidel に数週間費やしました。卑劣なバグを見つけました:メモリを書き込む野指針。ほとんどの人は trivial だと思いますが、C プログラマーとして、私はメモリ破壊を最悪の罪と見ます。コンパイラのバグでもあります。Infiler は ENDLESS-DESERT を使用して未マップ領域をシミュレートします。捨てられたアイテムは lat/long と共に DESERT-TABLE に行きます。DESERT-TO-TABLE ルーチンにはバグがあり、SLOC 引数を適切に処理できず、メモリ破壊を引き起こします。このバグは検出が困難です。アイテムの 1/3 が砂に失われるからです。Infiler release 22 serial 840522 (Macintosh アップデート) を分析しました;オリジナルリリース 830916 でも同じバグがあります。ルーチンは誤ったインデックスで DESERT-TABLE に書き込み、隣接するメモリを上書きします。これはゲームプレイへの最小の影響にもかかわらず、メモリ安全性に違反します。Zマシンの実装は、テーブル更新ループでのポインタ算術エラーによってこの欠陥を露呈させます。
出典: Hacker News · 要約:HeadlinesBriefing