Conjunto de reglas Reglas mínimas nativas
Las reglas mínimas nativas de Microsoft se centran en los problemas más importantes del código nativo, incluidas las vulnerabilidades de seguridad y los bloqueos potenciales de la aplicación.Debe incluir este conjunto de reglas en todos los conjuntos de reglas personalizados que cree para sus proyectos nativos.
Regla |
Descripción |
---|---|
Usar memoria sin inicializar |
|
Desreferenciar el puntero nulo |
|
Uso del valor sin comprobación |
|
Finalización cero de la llamada |
|
Concatenación incorrecta |
|
Argumento de cadena ausente para dar formato a la función |
|
Argumento entero ausente para dar formato a la función |
|
Argumento de puntero ausente para dar formato a la función |
|
Argumento de puntero de cadena ausente para dar formato a la función |
|
Devolver memoria no inicializada |
|
El índice supera el máximo del búfer |
|
El índice supera el máximo del búfer de pila |
|
Argumento flotante ausente para dar formato a la función |
|
Argumento adicional para dar formato a la función |
|
Argumento no flotante para dar formato a la función |
|
Argumento no entero para dar formato a la función |
|
Argumento no carácter para dar formato a la función |
|
Conversión no válida de cadena |
|
Llamada no válida de CreateProcess |
|
Argumento objeto no válido para dar formato a la función |
|
Prioridad de la negación lógica y el bit a bit |
|
Prioridad de la negación lógica o el bit a bit |
|
Argumento de cadena de carácteres no válido para dar formato a la función |
|
Argumento de cadena de carácteres anchos no válido para dar formato a la función |
|
Tamaño no coincidente y recuento de uso |
|
Llamada de función con argumento variable incorrecto |
|
Potencial error de coincidencia de tipos de argumentos |
|
Saturación de lectura |
|
Saturación de escritura |
|
Valor de parámetro no válido |
|
Propiedad del atributo no válida |
|
Valores de propiedad de atributo en conflicto |
|
Las referencias no pueden ser nulas |
|
NULL en un no Puntero |
|
MustCheck en vacío |
|
Tamaño de búfer en no puntero o matriz |
|
Desigualdad Null en desreferenciación cero |
|
Acceso de escritura en constante |
|
Retorno utilizado en la condición previa |
|
Null finalizado en no Puntero |
|
La propiedad MustCheck debe ser Sí o No |
|
Tamaño del elemento sin tamaño de búfer |
|
El tamaño del búfer supera el tamaño de la matriz |
|
Tamaño del búfer en un no puntero |
|
Ninguna propiedad en el atributo |
|
Tamaño válido en el búfer no legible |
|
Tamaño de escritura en el búfer no modificable |
|
Anotación inválida: el valor de la propiedad 'NeedsRelease' debe ser Sí o No. |
|
Desreferenciación de la cadena de tamaño no válida |
|
Tipo tamaño de cadena no válido |
|
Parámetro de cadena de tamaño no válido |
|
Ubicación inalcanzable de la cadena de tamaño no válida |
|
Tipo del búfer del tamaño de cadena no válido |
|
Anotación no válida: La propiedad 'NeedsRelease' no se puede utilizar en valores de tipo void |
|
Estilo desconocido del formato de la cadena |
|
El uso de anotaciones de atributo en esta función invalidará todas las anotaciones __declspec existentes |
|
Especificación de tamaño no válida: expresión no divisible |
|
Deref= o Notref= no válido: expresión no divisible |
|
Este no es un valor Sí/No/Quizás válido |
|
El valor no es un valor de cadena |
|
El valor no es un número |
|
Error inesperado en la expresión de anotación |
|
El número esperado de argumentos para la anotación no coincide con el número real de argumentos para la anotación |
|
Error inesperado de anotación para anotaciones |
|
El parámetro anotado debe ser un puntero |
|
Desreferenciando el puntero NULL.El puntero contiene el mismo valor NULL que realizó otro puntero. |
|
Referencia no válida a miembro no estático. |
|
Referencia ambigua a un miembro de clase. |
|
Se usó _Success_ u _On_failure_ en un contexto no válido |
|
El operando izquierdo señala a un struct, use '->' |
|
El operando izquierdo es un struct, use '.' |
|
Las anotaciones para el contexto _on_failure_ no deben estar en un contexto previo explícito |
|
Se esperaba un nombre de contexto estático para SAL_context. |
|
Expresión de puntero esperada para la anotación |
|
La anotación _Use_decl_annotations_ se debe usar para hacer referencia, sin modificación, a una declaración anterior. |
|
Los nombres de atributo de parámetros deben ser p1...p9 |
|
typefix no se puede aplicar a un parámetro que ya tenga un typefix |
|
La anotación checkReturn solicita sólo a las condiciones posteriores el parámetro de la función específica. |
|
Para la función, el número de parámetros de la anotación no coincide con el encontrado en el archivo. |
|
Para el parámetro de la función, el parámetro de anotación no coincide con el que se ha encontrado en el archivo |
|
Se esperaba un miembro de enumeración para el parámetro de la anotación |
|
La expresión entera esperada para anotar el parámetro en la anotación |
|
Expresión de cadena esperada para el parámetro en la anotación |
|
__yes, __no, or __maybe esperado para la anotación |
|
Se esperaba un Token/identificador para un parámetro de la anotación |
|
La anotación requiere parámetros |
|
No se encontró el número correcto de parámetros requeridos en la anotación |
|
La anotación no puede ser también un elemento PrimOp (en la declaración actual) |
|
La anotación no puede ser también un elemento PrimOp (ver declaración anterior) |
|
Parámetro de anotación: no puede utilizar tipos en anotaciones |
|
La anotación no admite parámetros. |
|
El tipo de parámetro no tiene ningún miembro. |
|
La anotación sólo es válida en la matriz |
|
pre, post o deref no se aplican a ninguna anotación |
|
pre, post o deref se aplican a un bloque |
|
La expresión __at no se aplica a la función actual |
|
La función no puede usarse de forma independiente como anotación |
|
La anotación no se puede usar en una expresión |
|
Ya no se admite la anotación en el parámetro |
|
La anotación en el parámetro tiene más de un elemento value, stringValue y longValue.Utilice paramn=xxx |
|
La anotación en el parámetro tiene tanto un elemento value como stringValue o longValue, además de paramn=xxx.Use solamente paramn=xxx |
|
La anotación en el parámetro tiene un elemento param2 pero no param1 |
|
La anotación para la función del parámetro no se reconoce |
|
La anotación de la función en el parámetro requiere más desreferencias de las que permite el tipo anotado real. |
|
La anotación de la función anota 'this' en una función no miembro. |
|
El parámetro de la anotación de la función no coincide con el tipo de parámetro |
|
Anotación incoherente para la función: la instancia anterior tiene un error. |
|
Anotación incoherente para la función: esta instancia tiene un error. |
|
Anotación incoherente para la función: el parámetro tiene otras anotaciones en esta instancia. |
|
Anotación incoherente para la función: el parámetro tiene otras anotaciones en esta instancia. |
|
dynamic_cast<>() no se admite en las anotaciones |
|
Se encontró un error de sintaxis de anotación en la función, para la anotación |
|
Se encontró un error de sintaxis en una anotación condicional para el elemento de tipo intrínseco |
|
Los valores de las listas de resultados deben ser constantes. |
|
Se encontró un error de sintaxis de anotaciones en la función para la anotación. |
|
El parámetro de la anotación de la función al examinar no es coherente con la declaración de la función |
|
Para la función, las pistas no son coherentes con la declaración de la función |
|
El parámetro a _Macro_value_ es nulo |
|
Para el símbolo, se encontró un elemento 'begin' sin el elemento 'end' correspondiente |
|
Para el símbolo, se encontró un elemento 'end' sin el elemento 'begin' correspondiente |
|
Las cadenas de formato deben estar en las condiciones previas |
|
Para la función, error de sintaxis en el parámetro |
|
Para la función, error de sintaxis cerca del final |
|
Para la función, error de sintaxis en la anotación _At_() (nombre de parámetro no reconocido) |
|
Para la función, error de sintaxis en la anotación _At_() (nombre de parámetro no válido) |
|
Para la función: ReadableTo o WritableTo no tenían una especificación de límite como parámetro |
|
La anotación de la función contiene más valores External que el número real de parámetros |
|
El valor null/notnull posterior en el nivel 0 de desreferenciación carece de sentido para la función. |
|
Los operandos de expresión de tipos no son compatibles para el operador |
|
Ninguna anotación para la primera declaración de la función. |
|
Se encontró un operador adicional de _Deref_ en la anotación. |
|
Se encontró un operador ambiguo de _Deref_ en la anotación. |
|
Se encontró un operador incorrectamente colocado de _Notref_ aplicado al token. |
|
Se detectó un error mientras se analizaba un token. |
|
La anotación describe una situación no aplicable de forma condicional. |
|
La anotación describe dónde no se puede usar un valor dinámico (una variable) en la condición. |