発行番号: Cente101-0127
Rev: 第1版
発行日: 2026/2/13
【題名】
WindowsPCで作成したショートエントリファイルをハッシュ検索すると失敗してしまう問題について
【適用製品】
Cente FileSystem Ver5.62 ~ Ver6.51
【影響API】
fopen, rename, remove, chg_attr, get_attr, chg_tstamp, move, finfo, rmdir_all, dinfo, readdir_wc, mkdir, rmdir, ct_divide, ct_combine, ct_ins_clust
fopen_uni, rename_uni, remove_uni, chg_attr_uni, get_attr_uni, chg_tstamp_uni, mkdir_uni, move_uni, finfo_uni, rmdir_all_uni, dinfo_uni, readdir_wc_uni, rmdir_uni, opendir_uni, ct_divide_uni, ct_combine_uni, ct_ins_clust_uni
【現象】
Windows PC上で作成されたショートエントリ(8.3形式)のファイルおよびディレクトリに対し、
Cente FileSystemからハッシュ検索を実行すると、検索に失敗します。
その結果、ハッシュ検索による高速化が機能せず、通常の線形探索が実行されます。
《発生条件について》
以下の条件を全て満たした場合に発生します。
①WindowsPCでショートエントリファイル(8.3形式)を作成
②FS_HASH_USEを1に設定
③影響APIを実行
【原因】
ディレクトリエントリには、ショートエントリ(8.3形式)とロングエントリの2つの形式が存在します。
ハッシュ検索を実行する際、対象のクラスタ番号、オフセット値、およびエントリ数を用いて対象を特定しますが、
Windows PCで作成されたショートエントリを読み込む際、
エントリ解析処理の不備により、本来「1エントリ」とすべきところを誤って「2エントリ分」としてカウントしていました。
このカウントミスにより、ハッシュ検索にて計算したオフセット先が実際のエントリ配置とズレ、
異なるエントリ領域を参照してしまった為、フォールバックとして通常の線形探索が実行されておりました。
■プログラムによる回避方法
修正ソースにつきましては、弊社サポートまでお問い合わせ下さい。