CERT.SIG.SIG_HANDLER.ASYNC_SAFE

シグナルハンドラー内では非同期安全な関数のみを呼び出します。

脆弱性とリスク

シグナルハンドラー内から非同期安全でない関数を呼び出すことは、未定義の動作です。

軽減と防止

厳密に準拠したプログラムの場合、シグナルハンドラー内から安全に呼び出すことができるのは、C 標準ライブラリ関数 abort()、_Exit()、quick_exit()、および signal() のみです。

一般に、シグナルハンドラー内から I/O 関数を呼び出すのは安全ではありません。プログラマーは、シグナルハンドラーで関数を使用する前に、コードを実行する実装すべてについて、実装の非同期安全な関数のリストに関数が含まれていることを確認する必要があります。