Share via


__security_init_cookie

グローバル セキュリティ Cookie を初期化します。

void __security_init_cookie(void);

解説

グローバル セキュリティ Cookie は、/GS (バッファーのセキュリティ チェック) でコンパイルされるコード、および例外処理を使用するコードで、バッファー オーバーランの保護に使用されます。 原則的に、オーバーランを保護する関数の入り口で Cookie がスタックに配置され、出口でスタックの値がグローバル Cookie と比較されます。 2 つの Cookie が異なる場合、バッファー オーバーランが発生したため、プログラムが直ちに終了されることを示します。

通常、__security_init_cookie は起動時に CRT で呼び出されます。 CRT の初期化を省略する場合 (たとえば、DLL を記述して /ENTRY でエントリ ポイントを指定する場合など)、__security_init_cookie を手動で呼び出す必要があります。

オーバーランを保護する関数を入力する前に、__security_init_cookie を呼び出す必要があります。それ以外の場合、誤ってバッファー オーバーランが検出されます。 詳細については、「C ランタイム エラー R6035」を参照してください。

使用例

C ランタイム エラー R6035」の例を参照してください。

必要条件

ルーチン

必須ヘッダー

__security_init_cookie

<process.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

同等の .NET Framework 関数

該当なしこの関数は、マネージ コードではなく、ネイティブ コードからのみ呼び出されます。

参照

参照

Compiler Security Checks In Depth