__security_init_cookie
Inizializza il cookie di sicurezza globale.
Sintassi
void __security_init_cookie(void);
Osservazioni:
Il cookie di sicurezza globale viene usato per la protezione da sovraccarico del buffer nel codice compilato con /GS (Controllo sicurezza buffer) e nel codice che usa la gestione delle eccezioni. All'ingresso in una funzione protetta da sovraccarico, il cookie viene inserito nello stack e, all'uscita, il valore presente nello stack viene confrontato con il cookie globale. Eventuali differenze tra di essi indicano che si è verificato un sovraccarico del buffer causando l'interruzione immediata del programma.
In genere, __security_init_cookie
viene chiamato da CRT quando viene inizializzato. Se si ignora l'inizializzazione CRT, ad esempio se si usa /ENTRY
per specificare un punto di ingresso, è necessario chiamare __security_init_cookie
se stessi. Se __security_init_cookie
non viene chiamato, il cookie di sicurezza globale viene impostato su un valore predefinito e la protezione del sovraccarico del buffer viene compromessa. Poiché un utente malintenzionato può sfruttare questo valore del cookie predefinito per aggirare i controlli di sovraccarico del buffer, si consiglia di chiamare sempre __security_init_cookie
quando si definisce un punto di ingresso.
La chiamata a __security_init_cookie
deve essere eseguita prima dell'immissione di qualsiasi funzione protetta da sovraccarico; in caso contrario, verrà rilevato un sovraccarico del buffer non corretto. Per altre informazioni, vedere Errore di run-time C R6035.
Esempio
Vedere gli esempi in Errore di run-time C R6035.
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
__security_init_cookie |
<process.h> |
__security_init_cookie
è un'estensione Microsoft della libreria di runtime C standard. Per informazioni sulla compatibilità, vedere Compatibilità.