ノーマルビュー

m68k用Linuxに実装されたstrcmp()のコードにバグ。12年間気がつかず

著者: nagazou
2022年12月28日 15:01

Linuxに実装されているMotorola MC68000(m68k)アーキテクチャ向けに最適化された文字列比較に使用される「strcmp」関数の手書きのアセンブリコードが、2010年10月の実装時から2022年12月まで12年間の間、正常に動作していなかったことが判明した。Linus Torvalds氏はこの件に関して「常に壊れていた」と発言している(PhoronixLinus Torvalds氏による説明)。

この問題についての詳細をツイートしているFadis氏の説明を引用すると、

Linuxのm68kサポートには2010年にアセンブリで書かれた高速なstrcmpの実装が追加された。しかしこの実装は2つの文字を8bit整数のまま減算して結果が0でなければそれを返り値とするという実装だった為、非ASCII文字を含む場合に正しくない結果を返す不具合があった

とのこと。

すべて読む | Linuxセクション | Linux | バグ | IT | この記事をTwitterでつぶやく この記事をFacebookで共有 この記事をGoogle Plusで共有 このエントリーをはてなブックマークに追加

関連ストーリー:
リーナス・トーバルズ氏が使用する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日

❌