Ensemble de règles des règles minimales mixtes
Les règles minimum mixés de Microsoft couvrent les problèmes les plus critiques rencontrés dans vos projets C++ qui prennent en charge le Common Language Runtime, notamment les failles de sécurité potentielles et les blocages d'applications.Vous devez inclure cet ensemble de règles dans tout ensemble de règles personnalisé que vous créez pour vos projets C++ qui prennent en charge le Commun Language Runtime.
Règle |
Description |
---|---|
Utilisation de d'une mémoire non initialisée. |
|
Suppression de la référence du pointeur NULL. |
|
Utilisation d'une valeur non verifiée. |
|
Terminaison par zéro de l'appel |
|
Mauvaise Concaténation |
|
Argument String manquant pour formater la fonction |
|
Argument Integer manquant pour formater la fonction |
|
Argument Pointer manquant pour formater la fonction |
|
Argument String Pointer manquant pour formater la fonction |
|
Renvoi de la mémoire non initialisée |
|
L'index dépasse la taille maximale autorisée par la mémoire tampon. |
|
L'index dépasse la taille maximale autorisée par la mémoire tampon allouée par la pile. |
|
Argument float manquant pour le formatage de la fonction |
|
Argument supplémentaire pour le formatage de la fonction |
|
Argument non float pour le formatage de la fonction |
|
Argument non entier pour le formatage de la fonction |
|
Argument non character pour le formatage de la fonction |
|
Transtypage de chaîne non valide |
|
Appel CreateProcess non valide |
|
Argument objet manquant pour le formatage de la fonction |
|
Priorité NOT logique et AND au niveau du bit |
|
Priorité NOT logique et OR au niveau du bit |
|
Argument Character String invalide pour formater la fonction |
|
Argument Character String Large invalide pour formater la fonction |
|
Incompatibilité entre la taille et la quantité |
|
Appel de fonction d'argument de variable non valide |
|
Incompatibilité de type d'argument possible |
|
Dépassement en lecture |
|
Dépassement en écriture |
|
Valeur du paramètre non valide |
|
Propriété d'attribut non-valide |
|
Valeurs de propriété d'attribut en conflit |
|
Les références ne peut pas avoir la valeur null. |
|
Null sur élément non pointeur |
|
MustCheck sur Void |
|
Taille de mémoire tampon sur élément non pointeur ou tableau |
|
Incompatibilité de Null de déférencement de zéro |
|
Accès en écriture sur constante |
|
Retour utilisé sur condition préalable |
|
Terminaison par Null sur élément non pointeur |
|
MustCheck doit avoir la valeur Yes ou No |
|
Taille d'élément sans taille de mémoire tampon |
|
Taille de mémoire tampon dépasse la taille du tableau |
|
Taille de mémoire tampon sur élément non pointeur |
|
Pas de propriétés sur l'attribut |
|
Taille valide dans mémoire tampon non lisible |
|
Taille accessible en écriture dans mémoire tampon non accessible en écriture |
|
Annotation non valide : la valeur de la propriété 'NeedsRelease' doit être définie à Yes ou No |
|
Déférencement de String Size non valide |
|
Type de String Size Invalid |
|
Paramètre de taille de chaîne non valide |
|
Chaîne de taille non valide. Emplacement inaccessible. |
|
Taille du type de tampon de chaîne invalide |
|
Annotation non valide : la propriété 'NeedsRelease' peut ne pas être utilisée dans des valeurs de type void |
|
Style de chaîne de format non reconnu |
|
L'utilisation d'annotations d'attribut sur cette fonction invalidera l'ensemble de ses annotations __declspec existantes |
|
Spécification de taille non valide : l'expression n'est pas analysable |
|
Deref= ou Notref= non valide : l'expression n'est pas analysable |
|
La valeur n'est pas une valeur Yes/No/Maybe valide. |
|
La valeur n'est pas une valeur de chaîne |
|
La valeur n'est pas un nombre |
|
Erreur d'expression de l'annotation inattendue |
|
Nombres d'arguments attendus pour l'annonation ne correspond pas au nombre actuels pour l'annonation |
|
Erreur d'Annotation pour l'annotation inattendue |
|
Le paramètre annoté doit être un pointeur. |
|
Déréférencer le pointeur NULL.Le pointeur contient la même valeur NULL que contenait un autre pointeur. |
|
Référence non autorisée au membre non statique. |
|
Référence ambiguë au membre de classe. |
|
_Success_ ou _On_failure_ utilisés dans un contexte non autorisé |
|
L'opérande de gauche pointe vers un struct, utiliser '->'. |
|
L'opérande de gauche est un struct, utiliser '.' |
|
Les annotations pour le contexte _On_failure_ ne doivent pas se trouver dans un contexte préalable explicite. |
|
Nom du contexte statique attendu pour SAL_context |
|
Expression de pointeur attendue pour l'annotation |
|
L'annotation _Use_decl_annotations_ doit être utilisée pour référencer, sans modification, une déclaration antérieure. |
|
Les noms des paramètres d'attribut doivent être p1...p9 |
|
Le typefix ne peut pas être appliqué à un paramètre qui contient déjà un typefix |
|
L'annotation checkReturn s'applique uniquement aux postconditions pour le parametre fonction spécifique. |
|
Pour la fonction, le nombre de paramètres de l'annotation ne correspond pas au nombre trouvé dans le fichier. |
|
Pour le paramètre de la fonction, le paramètre de l'annotation ne correspond pas au nombre trouvé sur le fichier. |
|
Membre de l'énumération attendu pour une annotation, le paramètre dans l'annotation |
|
Expression d'entier attendue pour annotation du paramètre dans l'annotation |
|
Expression de chaîne attendue pour le paramètre paramètre dans l'annotation |
|
__yes, __no, ou __maybe attendus pour l'annotation |
|
Jeton/identificateur attendu pour le paramètre de l'annotation |
|
L'annotation requiert des paramètres. |
|
N'a pas trouvé le nombre correcte de paramètres requis dans l'annotation |
|
L'annotation ne peut pas être un PrimOp également (dans la déclaration actuelle). |
|
L'annotation ne peut pas être un PrimOp également (voir la déclaration antérieure). |
|
Annotation paramètre : le type ne peut pas être utilisé dans les annotations. |
|
L'annotation ne prend pas en charge des paramètres. |
|
Le type de paramètre n'a aucun membre. |
|
L'annotation n'est valide que sur un tableau |
|
pre, post, ou deref ne sont appliqués à aucune annotation |
|
pre, post, ou deref sont appliqués à un bloc |
|
L'expression __at ne s'applique pas à la fonction active |
|
La fonction ne peut pas être une annotation autonome. |
|
L'annotation ne peut pas être utilisée dans une expression. |
|
L'annotation sur paramètre n'est plus prise en charge |
|
L'annotation sur paramètre possède plusieurs value, stringValue, et longValue.Utiliser paramn = xxx |
|
L'annotation sur paramètre possède à la fois value, stringValue, ou longValue ; et paramn=xxx. Utiliser uniquement paramn=xxx. |
|
L'annotation sur paramètre possède param2 et non param1. |
|
L'Annotation pour la fonction sur paramètre n'est pas reconnu. |
|
L'annotation pour la fonction sur paramètre nécessite plus de déréférencements que ne l'autorise le type réel annoté. |
|
L'annotation pour la fonction annote 'this' sur une fonction non membre. |
|
Le paramètre d'annotation pour la fonction ne correspond pas au type du paramètre. |
|
Annonation incohérent pour la function : l'instance précédente a une erreur. |
|
Annotation incohérente pour la fonction : Cette instance a une erreur. |
|
Annotation incohérente pour la fonction : parametre a une annotation sur cet instance |
|
Annotation incohérente pour la fonction : parametre a une annotation sur cet instance |
|
dynamic_cast<>() n'est pas pris en charge dans les annotations. |
|
Une erreur de syntaxe dans l'annotation a été trouvée dans la fonction pour l'annotation |
|
Une erreur de syntaxe dans une annotation conditionnelle a été trouvée pour l'annonation intrinsèque |
|
Les valeurs des listes de résultats doivent être des constantes. |
|
Une erreur de syntaxe dans les annotations a été trouvée dans la fonction d'annotation. |
|
L'annotation pour la fonction, paramètre lors de l'examen est incohérente avec la déclaration de la fonction. |
|
Pour la fonction, les indices sont incohérentes avec la déclaration de la fonction. |
|
Le paramètre de _Macro_value_ a la valeur null |
|
Pour le symbole, un 'begin' a été trouvé sans 'end' correspondant |
|
Pour le symbole, un 'end' a été trouvé sans 'begin' correspondant |
|
Les chaînes de format doivent se trouver dans les conditions préalables |
|
Pour la fonction, une erreur de syntaxe dans le paramètre |
|
Pour la fonction, une erreur de syntax vers la fin |
|
Pour la fonction erreur dans l'annotation _At_() (nom de paramètre non reconnu) |
|
Pour la fonction, erreur dans l'annotation _At_() (nom de paramètre non valide) |
|
Pour la fonction: ReadableTo ou WritableTo n'a pas eu de spécification de limites en tant que paramètre |
|
L'annotation pour la fonction contient plus d'Externals que le nombre réel de paramètres |
|
post null/notnull au niveau 0 deref n'a pas de sens pour la fonction. |
|
Opérandes d'expression de types incompatibles pour l'opérateur |
|
Aucune annotation pour la première déclaration dela fonction. |
|
Un opérateur supplémentaire _Deref_ a été trouvé sur l'annotation. |
|
Un opérateur ambigu _Deref_ a été trouvé sur l'annotation. |
|
Un opérateur _Notref_ placé de manière incorrecte a été trouvé appliqué au token. |
|
Une erreur a été découverte lors de l'analyse du token. |
|
L'annotation décrit une situation qui n'est pas applicable de manière conditionnelle. |
|
L'annotation décrit lorsqu'une valeur dynamique (une variable) ne peut pas être utilisée dans la condition. |
|
Les types qui possèdent des champs supprimables doivent être supprimables |
|
Supprimer les finaliseurs vides |
|
Les champs pouvant être supprimés doivent l'être |
|
Surchargez l'opérateur égal (equals) en remplaçant ValueType.Equals |