タグ

2008年5月10日のブックマーク (1件)

  • ほぼすべてのBSDに存在してきたseekdir()のバグが25歳で死す | スラド デベロッパー

    OpenBSD の Marc Balmer による When seekdir() Won't Seek to the Right Positionというブログエントリによると、4.2BSD 以来すべての BSD libc (Mac OS X も含む) には、unlink() のタイミングなど特定の条件下でseekdir() が不正な値を返すバグがあり、Open/Net/Free/Dragonfly BSD で修正されました。(Undeadly の同名記事には各 BSD の修正箇所も載っています。) 発見と修正のきっかけは Samba ユーザからの苦情で、じっさい Samba 開発者たちは以前から BSD の *dir() にバグがあることを知っていたようです。とはいえ、Marc もこれほど単純なバグが約 25 年も生き残っていたことに驚きと遺憾の意を表明しています。

    rin_ne
    rin_ne 2008/05/10
    こんな風にオンメモリのエントリテーブルをベースに持つシステムで、ディレクトリに4つファイルがあって、1つ消して再度数を数えたら2つしかなかった、って事象に遭遇したことがあるけど、まさか…