|
分類:[C/C++]
C++もWinsockも初心者です、よろしくお願いします。
現在、メールを受信するプログラムを作成しているのですが、 ちょっと負荷がかかると例外エラーで強制終了し、イベントビューワーのアプリケーションに 「エラー発生アプリケーション mail.exe、バージョン 0.0.0.0、 エラー発生モジュール ntdll.dll、バージョン 5.1.2600.2180、エラー発生アドレス 0x0001888f」 と出ていました。
ネットで調べてみるとntdll.dllにはメモリ系の脆弱性があるという情報と、WindowsUpdateで直るとあったのですが、 Windows2003をUpdateしても同様の現象が発生してしまいます。 プログラムはソケット監視を行い、アクセスがあるとスレッドを生成して、 スレッド内でPOP3アクセスを行い、受信したメールをODBCで登録するマルチスレッドプログラムです。
件数が少ないときは良いのですが、50件程度のメールを2度3度と受信していると上記エラーが発生してしまいます。 環境はWindowsXPとWindows2003でC++はGCC3.4.5でコンパイルしています。 使用しているソケットはwinsock2.0を指定しています。
回避策や代替案などありましたら、教えてください。 よろしくお願いします。
|