【Issue#1165 動作確認】 □ テスト内容 Issue#1165 で指摘されている現象は、以下の理由により既に解消されている。 ・ kill および gettid のシステムコールデリゲートは、McKernel と同一PIDを持つ mcexec に対して発行するようになっているため、他プロセスの情報を参照する ことは無い。 ・ 対応する mcexec が終了している状態でシステムコールデリゲートしたとしても、 mcctrl が適切にエラーを返すため、指摘の現象が発生することは無い。 以上を踏まえ、Issue#1165 では、以下の改修を行った。 ・ 他 PID の mcexec にシステムコールデリゲートは発生しない (または解消可能) ので、do_syscall と send_syscall のインタフェースから PID 指定を削除する。 ・ 他 PID の mcexec にシステムコールデリゲートする以下の処理は、同一 PID の mcexec にシステムコールデリゲートするように変更する。 - fork 後、親プロセスから子プロセスの mcexec に PTE の初期化を依頼する処理 このため、Issue#1165に対して以下のテストを行った。 1. fork 後、子プロセスのシステムコールデリゲートで親プロセスの領域が破壊 されないことを確認する。 C1165T01 親プロセスが read 後 fork し、子プロセスが同じアドレスの領域に read して子プロセスの領域が書き換えられ、親プロセスの領域が書き換えられ ないことを確認する。 2. 指摘されたプログラムを実行し、残留プロセスが存在しないことを確認する。 C1165T02 ostest force_exit 3. LTP を用いて、変更が既存処理に影響しないことを確認する (以下の LTP が PASS すること)。 C1165T03 clone01 C1165T04 clone03 C1165T05 clone04 C1165T06 clone06 C1165T07 clone07 C1165T08 fork01 C1165T09 fork02 C1165T10 fork03 C1165T11 fork04 C1165T12 fork07 C1165T13 fork08 C1165T14 fork09 C1165T15 fork10 □ 実行手順 $ make test McKernelのインストール先や、OSTEST, LTPの配置場所は、 $HOME/.mck_test_config を参照している .mck_test_config は、McKernelをビルドした際に生成されるmck_test_config.sample ファイルを $HOMEにコピーし、適宜編集する □ 実行結果 C1165.txt 参照。 全ての項目が OK となっていることを確認。