Cente FileSystem

Cente FileSystem

・ログ管理チェックディスク機能の追加

ファイル/ディレクトリへのアクセス中にログを取ることで、電源断や不意なメディア取り外しが発生した場合に、問題があった箇所のみ的確に修復する機能を追加しました。チェックディスク機能と同様に、メタデータの不整合や規格外の値などを検出した上で修復を行う、低負荷な保護機能です。

・ST_FILE構造体使用部の見直し

ST_FILE型ポインタに対して、FILE型のアドレスをキャストせずにそのまま渡していた箇所を修正しました。Centeとは別にFILE型を定義している環境で、コンパイラエラーになる可能性がありました。

Cente FileSystem

・全角の大文字・小文字の表記が可能なコードの扱いに誤りがある不具合を修正(Cente障害情報:101-0092)

全角ファイル・ディレクトリ名に対し大文字/小文字の関係にあった場合、異なったファイル・ディレクトリであると判断してしまう不具合を修正。本修正はVer6.20で修正した「Cente障害情報:101-0092」について追加修正を行ったものです。以下の処理部を修正しています。

1.同一ファイルオープンの検出

2.rename(), rename_uni()実行時の同一ファイル検出

3.move(), move_uni()実行時の同一ファイル検出

・高速fseek時に異なる位置にシークしてしまう不具合を修正(Cente障害情報:101-0093)

高速fsek使用時において、クラスタ内移動セクタ数の算出方法に誤りがあり、以下の問題が発生する不具合を修正。

1.正しい位置にデータが書き込めない。

2.データが正しく読み出せない。

3.サイズ情報とFAT チェーン情報に不整合が発生してしまう。

Cente FileSystem

 ・ショートエントリ検索で誤検出する場合がある不具合を修正(Cente障害情報:101-0089)

 UNICODE APIにおいて12文字以内のUNICODEのASCII変換に誤りがあり、指定名以外のエントリを検出してしまう場合がある不具合を修正。

 ・rename_uniにおける名前比較で誤ったエラーコードを返す不具合を修正(Cente障害情報:101-0090)

 UNICODEファイル名が同一か否かを比較する際に、文字列の終端を誤検出していた為、誤った比較結果を返していた不具合を修正。

 ・UNICODE文字の2バイト目のコードの扱いに誤りがある不具合を修正(Cente障害情報:101-0091)

 UNICODE文字列比較関数fs_unicodecmp(), fs_unicodencmp()において異なるUNICODE文字を同一と判定してしまう場合がある不具合を修正。

Cente FileSystem

・ファイル分割、クラスタ挿入時にFAT操作が正しく行えない不具合を修正

ct_divideでFATチェーンの分割位置とディレクトリエントリに書き込むサイズ情報に不整合が発生する不具合を修正ct_ins_clustで挿入位置に「1」以上を指定した場合、指定位置とは誤った位置にクラスタを挿入してしまう不具合を修正

(Cente障害情報:101-0079)

 

 ・同一ファイルの多重オープン時の読み出しで誤ったデータを読み込む不具合を修正

書き込みモード("w","w+","a","a+","r+")と読み出しモード("r")で同一ファイルを同時にオープンした時に、以下の問題が発生する不具合を修正

1.  誤ったデータを読み込んでしまう

2.  古いデータを読み込んでしまう

3.  ファイルサイズが更新されない

(Cente障害情報:101-0080)

 

Cente FileSystem

・下記APIを修正
fopen_uni, move_uni, rename_uni, get_attr_uni, chg_attr_uni, get_tstamp_uni, chg_tstamp_uni, finfo_uni, remove_uni, mkdir_uni, opendir_uni, rmdir_uni
 下位Byteが「0x00」のUNICODE文字をフルパスに指定した場合、正しくファイル、ディレクトリ操作が行えない不具合を修正
(Cente障害情報:101-0064)
 
・下記APIを修正
fopen, fputc, fputs, fwrite, rename, remove, move, chg_attr, chg_tstamp, chg_filelen, mkdir, rmdir, fopen_uni, rename_uni, remove_uni, move_uni, chg_attr_uni, chg_tstamp_uni, mkdir_uni, rmdir_uni, ini_journal, ini_journal_uni

Cente FileSystem

 ・fs_find_dir_entry_sub、fs_find_dir_entry_uni_sub関数修正
FAT32フォーマットされたメディアのルートディレクトリに対して、1クラスタを超えるファイル・ディレクトリ操作が行えない不具合を修正
(Cente障害情報:001-0049)
・fs_vfopen、fs_vfopen_uni関数修正
メタデータ保護機能有効時、既存ファイルを’w’モードでオープンした場合のFAT2領域チェーン削除中に電源断が発生すると、修復が正常に行えない不具合を修正
(Cente障害情報:001-0050)
・DT_fputc、DT_fputs、DT_fwrite、fs_chg_filelen関数修正
メタデータ保護機能有効時、以下の条件で書き込みを行っている時に電源断が発生すると修復が正常に行えない不具合を修正
1.既存ファイルを’r+’,’a’,’a+’でオープン
2.クラスタチェーンが作成される書き込み
(Cente障害情報:001-0051)

Cente FileSystem

・機能仕様の一部を変更
・メタデータ保護機能の仕様を変更しました。また仕様変更に伴いメタデータ保護機能のマクロ名を「POWER_CUT」を「FS_JOURNAL」に改名しました。
・高速fseek処理の仕様を変更しました。また仕様変更に伴い高速fseekマクロ名を「FS_SEEK_BF」を「FS_SEEK_HIGH」に改名しました。
・UNICODE APIの仕様を変更しました。
・rename,moveの仕様を変更しました。

・API追加
UNICODE APIを追加しました。

・API削除
ダイレクトアクセスAPI、ハッシュAPIを削除しました。

・fgetc, fgets, fputc, fputs, fread, fwrite関数修正
ファイルの終端へのfseek後のread/write不具合について修正しました。(Cente障害情報:001-0041)

Cente FileSystem

・save_cache関数修正
セーブキャッシュ時にデバイスへのアクセスに失敗した場合、FAT、ディレクトリ領域用のセマフォ返却が行なわれない不具合を修正。

・new_cache, new_dcache関数修正
FAT, Directory Cacheのデバイスへのアクセスに失敗した場合のキャッシュの扱いにおける不具合を修正。

・ct_get_api_fsyser, set_api_fsyser関数修正
エラーコード取得時に格納変数配列を超えてアクセスしてしまう不具合を修正。

・fwrite関数修正
書込みエラー発生時に、正しい戻り値を返さない場合がある不具合を修正。

・fclose関数修正
ファイルクローズ時にエラーが発生した場合、ファイル構造体の資源が減少してしまう不具合を修正。

・readdir_uni関数修正

Page 1 of 4

Social Media