チケット #3124

create and delete of dynamic generated MPF
登録: 2003-10-09 23:07 最終更新: 2003-11-23 23:23

報告者:
担当者:
チケットの種類:
状況:
完了
コンポーネント:
(未割り当て)
マイルストーン:
(未割り当て)
優先度:
7
重要度:
5 - 中
解決法:
修正済み
ファイル:
4

詳細

アプリケーションで確保されたメモリブロックに生成されたMPF
を削除する場合、カーネル管理下のメモリブロックを使っていな
いにも関わらずdel_mpf()でkernel_mem_free()が呼ばれている
ため、不具合が生じる場合がある。

添付したpatchはこの問題を修正する。

この問題の報告及びpatchは、Graham Whaley氏より
いただいた。


Since kernel_mem_free() is always called in del_mpf()
even if it isn't created with the memory block
allocated by kernel management when deleting MPF
with the memory block allocated by application,
fault may arise.

Appended patch corrects this problem.

This report and patch is sent by Mr. Graham Whaley.

チケットの履歴 (8 件中 3 件表示)

2003-10-09 23:07 更新者: m-arai
  • 添付ファイル 724: cre_fre_mpf.diff が付加されました
2003-10-09 23:08 更新者: m-arai
  • 優先度5 - 中 から 7 に更新されました
  • 担当者(未割り当て) から m-arai に更新されました
2003-10-10 14:30 更新者: m-arai
  • 添付ファイル 725: mpf_c_h_diffs.tbz が付加されました
コメント
Logged In: YES
user_id=1822

2つの新版差分

mpf1.diff:
ほぼWhaley版と同じ。異なるのは、E_PARチェックについてcre_mpfに
移したこと、unsignedなパラメータに対する条件を==0にしたこと。

mpf2.diff:
メモリ取得を一括にすることにより、解放に関する問題を解消
メモリプールのサイズ算出に関するバグ修正
2003-10-10 15:56 更新者: m-arai
コメント
Logged In: YES
user_id=1822

mpf2_2.diff:
mpf2.diffの修正版
kcre_mpf.cの
TSZ_MPF()に与える引数の順番が逆だったのを修正
メモリブロック初期化部の、ポインタインクリメントをアライメント
を考慮したものにした

尚、mpf1~mpf2_2.difは、コンパイルが通るところまでしか
確認していない。
2003-10-10 15:56 更新者: m-arai
  • 添付ファイル 726: mpf2_2.diff が付加されました
2003-10-10 20:23 更新者: m-arai
  • 添付ファイル 727: mpf2_3.diff が付加されました
  • 概要が更新されました
コメント
Logged In: YES
user_id=1822

最初考えていたより広範囲な問題だったので、サマリを変更

mpf2.diffの再修正版:
acre_mpfがあったので、やはりE_PARチェックはkcre_mpfに
戻した。
サイズのアライメント調整マクロの改名
mpfcb_rom->blkszにはアライメント調整済みのサイズを格納する
ようにしないと穴があった
2003-11-23 23:22 更新者: m-arai
コメント
Logged In: YES
user_id=1822

commit and close
2003-11-23 23:23 更新者: m-arai
  • 状況オープン から 完了 に更新されました
  • 解決法なし から 修正済み に更新されました
  • チケット完了時刻2003-11-23 23:23 に更新されました

添付ファイルリスト

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする