m68k用Linuxに実装されたstrcmp()のコードにバグ。12年間気がつかず
2022年12月28日 15:01
Linuxに実装されているMotorola MC68000(m68k)アーキテクチャ向けに最適化された文字列比較に使用される「strcmp」関数の手書きのアセンブリコードが、2010年10月の実装時から2022年12月まで12年間の間、正常に動作していなかったことが判明した。Linus Torvalds氏はこの件に関して「常に壊れていた」と発言している(Phoronix、Linus Torvalds氏による説明)。
この問題についての詳細をツイートしているFadis氏の説明を引用すると、
Linuxのm68kサポートには2010年にアセンブリで書かれた高速なstrcmpの実装が追加された。しかしこの実装は2つの文字を8bit整数のまま減算して結果が0でなければそれを返り値とするという実装だった為、非ASCII文字を含む場合に正しくない結果を返す不具合があった
とのこと。
すべて読む
| Linuxセクション
| Linux
| バグ
| IT
|
関連ストーリー:
リーナス・トーバルズ氏が使用するPCのメモリ不良のためLinuxカーネルの開発が滞る
2022年10月12日
Lotus 1-2-3、Linux に移植される
2022年05月27日
Linux 5.15 でマージされた NTFS3 ドライバー、既に orphan 化との指摘も
2022年05月03日
Hello, Worldに潜むバグ
2022年03月24日