ハンドルリークテスト用 HTTP モジュールの作成

このページではハンドルリークを起こす HTTP モジュールを開発します。 もちろん、本番のサーバーにこんなものをインストールしてはいけませんよ! 以下のページでハンドルリークの調査方法を説明しています。このモジュールはそのための、いわば勉強用モジュールです。 勉強が終わったら忘れず削除してください。

関連ページ

ハンドルリークの調査方法 ~ ハンドルリークとは?
!htrace デバッグコマンドをハンドルリークのデバッグ方法

コード

基本的に ページレベル HTTP モジュールの開発 (サンプルコード) と全く同様です。

myhttpmod.cpp の中の一行だけ違います。CloseHandle の呼び出しをコメントアウトしています。

(省略)

     if ( FAILED(hr) ) {
          pHttpResponse->SetStatus( 500, "Server Error", 0, hr);
     }

     // CloseHandle ( hFile );

     ::OutputDebugString ( TEXT( "Exit MyHttpModule::OnBeginRequest" ) );

     return RQ_NOTIFICATION_FINISH_REQUEST;

}

これにより、CreateFile でオープンしたファイルハンドルをリークさせています。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説