__security_init_cookie
Inizializza il cookie di sicurezza globale.
void __security_init_cookie(void);
Note
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 all'inizializzazione. Se si ignora l'inizializzazione di CRT, ad esempio se si usa /ENTRY per specificare un punto di ingresso, sarà necessario chiamare __security_init_cookie manualmente. Se __security_init_cookie non viene chiamato, il cookie di sicurezza globale viene impostato su un valore predefinito compromettendo la protezione da sovraccarico del buffer. 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 R6035 del linguaggio C in fase di esecuzione.
Esempio
Vedere gli esempi in Errore R6035 del linguaggio C in fase di esecuzione.
Requisiti
Routine |
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à.
Equivalente .NET Framework
Non applicabile. Questa funzione deve essere chiamata solo da codice nativo, non gestito.