_set_security_error_handlerの代わりになるものは? - MSDN フォーラム(情報元のブックマーク数)

色々あるが、バッファセキュリティチェックで、引っかかるけど逃げたいとのこと。

VC++2003にはバッファセキュリティチェック有効(/GS)時にバッファオーバーランを検出した後の動作を_set_security_error_handlerで変更できました。

コンパイラ セキュリティの徹底調査

本関数を使用しているプロジェクトをVC++2005 or 2008に移行したいのですが、この関数は削除されています。

互換性に影響する変更点(CRT)

デフォルト動作ではバッファオーバーランを検出した後にダイアログが表示されますが、このダイアログを表示させずにプロセスを終了するようにしたい。(検出→即終了)

何か方法はありますでしょうか?

https://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=4047722&SiteID=7

色々政治層はあるということで。

[背景]

使用しているのはマウス・キーボード・モニタを装着しないサーバーで動作するプログラムです。

クライアントアプリから要求をうけ、起動・終了を行います。

2重起動を禁止しているため、異常発生時にプロセスが残っていると次回要求時に起動できません。

ユーザーにはリモート操作を許可していないため、ダイアログが表示されているとサーバーをOSごと再起動しないといけません。

そのため異常時にはダイアログを表示せずにそのままプロセスを落としたい。



※根本的な解決にはバッファオーバーフローをなくす・・・というのは重々承知です

 しかし政治的なもろもろで修正はほとんど無しとしたいのです。

https://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=4047722&SiteID=7

screenshot