__security_init_cookie
Inicializa la cookie de seguridad global.
void __security_init_cookie(void);
Comentarios
La cookie de seguridad global se usa para la protección de saturación del búfer en código compilado con /GS (Comprobación de seguridad del búfer) y en 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 utiliza /ENTRY para especificar un punto de entrada), se deberá llamar a __security_init_cookie explícitamente. Si no se llama a __security_init_cookie, la cookie de seguridad global se configura en un valor predeterminado y se pone en peligro la protección de saturación del búfer 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 Error en tiempo de ejecución de C R6035.
Ejemplo
Consulte los ejemplos de Error en tiempo de ejecución de C R6035.
Requisitos
Rutina |
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 de compatibilidad, vea Compatibilidad.
Equivalente en .NET Framework
No es aplicable. Solo se debe llamar a esta función desde código nativo, no administrado.