__security_init_cookie
Inicializa la cookie de seguridad global.
Sintaxis
void __security_init_cookie(void);
Comentarios
La cookie de seguridad global se usa para la protección de saturación del búfer en el código compilado con /GS (Comprobación de seguridad del búfer) y en el código que usa el control de excepciones. En la entrada a una función con protección de saturación, la cookie se coloca en la pila y, en la salida, el valor de la pila se compara con la cookie global. Cualquier diferencia en la comparación indica que se ha producido una saturación del búfer y da lugar a la finalización inmediata del programa.
Normalmente, el CRT llama a __security_init_cookie
al inicializarse. Si se omite la inicialización de CRT (por ejemplo, si usa /ENTRY
para especificar un punto de entrada), deberá llamar a __security_init_cookie
. Si __security_init_cookie
no se llama a , la cookie de seguridad global se establece en un valor predeterminado y la protección contra saturación del búfer está en peligro. Dado que un atacante puede aprovechar este valor de cookie predeterminado para invalidar las comprobaciones de saturación del búfer, se recomienda que llame siempre a __security_init_cookie
al definir su propio punto de entrada.
La llamada a __security_init_cookie
se debe hacer antes de especificar ninguna función de protección contra saturación, ya que de lo contrario se detecta una saturación del búfer falsa. Para obtener más información, vea C Runtime Error R6035 (Error de tiempo de ejecución de C R6035).
Ejemplo
Vea los ejemplos de C Runtime Error R6035 (Error de tiempo de ejecución de C R6035).
Requisitos
Routine | Encabezado necesario |
---|---|
__security_init_cookie |
<process.h> |
__security_init_cookie
es una extensión de Microsoft de la biblioteca estándar en tiempo de ejecución de C. Para obtener información sobre la compatibilidad, consulte Compatibilidad.