改版履歴

Cente Compact FileSystem

・fopen関数修正
16BitCPUを使用してFS_SEEK_BFマクロを有効にした場合に、クラスタ個数を格納する変数がint型だとオーバーフローする可能性があるため、unsigned long型に変更しました。 

 

・ct_ini_disk_sect関数修正
16BitCPUを使用する場合に、ct_ini_disk_sectで使用する変数sectSizeがint型だとオーバーフローする可能性があるため、unsigned long型に変更しました。

 

・fs_num_chk関数修正
16BitCPUを使用する場合に、変数sectSizeがint型だとオーバーフローする可能性があるため、unsigned long型に変更しました。

 

 ・ct_ini_disk_sect、ct_mount_disk変更
アロケーションユニットサイズが最大65536バイトのメディアまでマウントする様に変更しました。

 

 ・fs_original.c、fs_system.h修正
16BitCPUでクラスタサイズが64KByte以上のデバイスを使用した時に、コンパイラによってshort型の変数の演算を行い、演算結果を long型に代入する時に、演算結果が17Bit以上になった場合16Bitのみ代入し桁落ちしてしまう不具合を修正しました。 

 

・fwrite、fread関数修正
-クラスタサイズが64KByte以上のデバイスを使用した時に、入出力データバッファ内オフセットをunsigned short型にキャストしている箇所があり、データ書き込み・読み込み時に、本来参照すべき入出力データバッファ内オフセットを参照できずにいた不具合を 修正しました。
-ST_FILE構造体のsectnoがクラスタ内の先頭セクタか終端セクタかでAPIが参照バッファ内のオフセット位置を間違えていた箇所を修正しました。 

 

・fs_find_dir_entry、fs_find_dir_entry_root関数修正
.(ドット)で始まり、ドットを含む4文字以下全て大文字のファイルディレクトリ名の時にremoveできない不具合の修正しました。 

 

・get_dev1関数修正
アロケーションユニットサイズが64Kbyteの時にscが負の値になる不具合を修正しました。 

 

・fs_memory.c、fs_lock.cソース修正
OSのシステムコール発行時にIDのチェックを行い、不正IDの時はエラーを返しシステムコールを実行しない様に修正しました。 

 

・ディレクトリキャッシュ機能追加
ディレクトリキャッシュ機能を追加しました。 

 

・fwrite関数修正
ディスクフルまでの書込みを行なった時に、ファイルポインタの指すST_FILE構造体のsectnoに誤ったセクタ番号を格納してしまい、その後ディスクフルにも関わらず誤った場所にデータを書込めてしまう不具合を修正しました(FATを破壊してしまう)。 

 

・fs_find_dir_entry関数修正
サブディレクトリ上のロングファイル名のショートエントリがセクタの先頭にあった場合、存在するはずのファイル検索に失敗する不具合を修正しました。 

 

・fputc、fputs関数修正
1クラスタ確保前にモードチェックを行っていない不具合を修正しました。 

 

・fopen関数修正
"a"モードでファイルを新規作成できなかった場合に、エラー処理を行っていない不具合を修正しました。 

 

・unmount_disk関数修正
ディレクトリをオープンしたままストレージデバイスを抜くと、オープンディレクトリ用資源の枯渇を招いてしまう不具合を修正しました。 

 

・fs_get_c_dent間数修正
FAT32フォーマットされたストレージデバイスを使用した時に、16BitCPU使用時に開始クラスタ番号上位を取得できない不具合を修正しました。

Cente FileSystem

・chg_attr、chg_tstamp関数修正

SAVE_CACHEマクロが有効な時に、ディレクトリキャッシュを保存する処理を追加しました。

・ct_chg_attrfp、ct_chg_tstampfp関数修正

"r"モードで開いたファイルのファイル属性、タイムスタンプが変更されてしまう不具合を修正しました。

・fs_ini_fatlock、fs_ini_direntrylock関数修正

初期化時に構造体の0クリア処理を追加しました。

・new_cluster関数修正

16BitCPUでFAT32フォーマットされたメディアを使用した場合に、new_clusterの戻り値をint型で返してしまい上位ビットが反転してしまう不具合を修正しました。

・get_dev_free、save_cache、refresh_cache関数修正

複数タスクから左記APIを同時に実行すると、タイミングによってFAT情報が後からAPIを実行したタスクに上書きされてしまう不具合を修正しました。

・opendir_cl、fopen_cl、fopen_uni、opendir_uni、readdir_uni、opendir_hash関数修正

複数タスクから左記APIを同時に実行すると、タイミングによってディレクトリ情報が後からAPIを実行したタスクに上書きされてしまう不具合を修正しました。

・get_sect_no関数修正

get_sect_noでエラーが発生した時に、ワークバッファの返却を実行しない不具合を修正しました。

・fopen、fopen_cl、fopen_hash、fopen_uni関数修正

16BitCPUを使用してFS_SEEK_BFマクロを有効にした場合に、クラスタ個数を格納する変数がint型ですとオーバーフローする可能性があるので、unsigned long型に変更しました。

・ct_ini_disk_sect関数修正

16BitCPUを使用する場合に、ct_ini_disk_sectで使用する変数sectSizeがint型だとオーバーフローする可能性があるので、unsigned long型に変更しました。

・fs_num_chk関数修正

16BitCPUを使用する場合に、変数sectSizeがint型だとオーバーフローする可能性があるので、unsigned long型に変更しました。

・ct_ini_disk_sect、ct_mount_disk変更

アロケーションユニットサイズが最大65536バイトのメディアまでマウントする様に変更しました。

Page 21 of 27