Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

/sdl (habilitar comprobaciones adicionales de seguridad)

Agrega las comprobaciones recomendadas del ciclo de vida de desarrollo de seguridad (SDL). Estas comprobaciones incluyen advertencias adicionales relativas a la seguridad como errores y características seguras adicionales de generación de código.

/sdl[-]

/sdl habilita un supraconjunto de comprobaciones de seguridad de la línea de base proporcionadas por /GS y reemplaza /GS-. La opción /sdl está desactivada de manera predeterminada. /sdl- deshabilita las comprobaciones de seguridad adicionales.

/sdl habilita estas advertencias como errores:

Advertencia habilitada por /sdl

Modificador equivalente de la línea de comandos

Descripción

C4146

/we4146

Se aplicó un operador unario menos a un tipo unsigned, lo que produce un resultado sin signo.

C4308

/we4308

Una constante negativa de tipo entero se convirtió a un tipo sin signo, lo que produce un resultado que posiblemente carece de sentido.

C4532

/we4532

El uso de las palabras clave continue, break o goto en un bloque __finally/finally tiene un comportamiento indefinido durante la terminación anormal.

C4533

/we4533

El código que inicializa una variable no se ejecuta.

C4700

/we4700

Uso de una variable local sin inicializar.

C4703

/we4703

Uso de una variable de puntero local potencialmente no inicializada.

C4789

/we4789

Saturación del búfer cuando se utilizan funciones específicas de C en tiempo de ejecución (CRT).

C4995

/we4995

Uso de una función marcada con una directiva pragma desusada.

C4996

/we4996

Uso de una función marcada como desusada.

Cuando se habilita /sdl, el compilador genera código para realizar estas comprobaciones en tiempo de ejecución:

  • Habilita el modo estricto de detección de saturación del búfer en tiempo de ejecución de /GS, lo que equivale a compilar con #pragma strict_gs_check(push, on).

  • Realiza una inmunización de puntero limitada. En las expresiones que no implican desreferenciación y en los tipos que no tienen un destructor definido por el usuario, las referencias de puntero se establecen en una dirección no válida después de una llamada a delete. Esto ayuda a evitar la reutilización de las referencias de puntero obsoletas.

  • Realiza la inicialización del miembro de clase. Se inicializan automáticamente todos los miembros de clase a cero en la creación de instancias de objetos (antes de que se ejecute el constructor). Esto ayuda a evitar el uso de los datos sin inicializar asociados a los miembros de clase que el constructor no inicializa explícitamente.

Para obtener más información, vea el blog acerca del ciclo de vida de desarrollo de seguridad.

Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para obtener información detallada, vea Cómo: Abrir páginas de propiedades del proyecto.

  2. Seleccione la carpeta C/C++.

  3. En la página General, seleccione la opción en la lista desplegable Comprobaciones SDL.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft