疑わしい変更を検出しました

今日はLHAの方はお休みして、1週間近く放置していたLinux版Hamigaki.Coroutineのyield_to()でクラッシュする問題を調査しました。
浮動小数点例外が発生していたので、コンテキストの切り替えで浮動小数レジスタが保存されていないのかなとも思ったのですが、Linuxではきちんと保存されるようです。
原因は、

class user_context_impl_base
{
protected:
    ::ucontext_t context_;
};

をstd::swap()していたため、コンテキスト情報が中途半端に復元されているせいでした。
ポインタに変えたら直りました。コンテキストのアドレスを変えちゃ駄目みたいです。


修正後、Windows版も含めてユニットテストを走らせたところ、昨日インストールしたばかりのウィルスバスター2007が反応しました。

このシステム上で次の疑わしい変更を検出しました。
項目を選択し、実行したい処理のボタンをクリックしてください。

コンピュータのメモリ (検出された変更点: 1件)
C:\path-to-dir\bin\hamigaki\libs\audio\test\wave_file_test.test\vc-8_0\debug\threading-multi\wave_file_test.exe

システム変更

危険度: 低

説明:
個人情報などを収集する可能性のあるプログラムがコンピュータのメモリ上で実行されています。

詳細:
パス: C:\path-to-dir\bin\hamigaki\libs\audio\test\wave_file_test.test\vc-8_0\debug\threading-multi
ファイル名: wave_file_test.exe

推奨:
疑いはありますが、このソフトウェアまたは変更は正規のものである可能性があります。この疑わしい問題を処理する前に、さらに調査してください。

なぜかVC8のwave_file_testのみ引っかかります。
wave_file_testはThunkもFiberも使ってないだけに謎です。
↓テスト自体は成功しています。
http://hamigaki.sourceforge.jp/status/