Que n’aimez-vous pas à propos de Coverity?
Cependant, il y a quelques points d'amélioration que je pense devoir souligner pour rendre cet outil encore meilleur pour les utilisateurs finaux.
strzcpy vs. NULL_STRING
Coverity ne reconnaît pas que strzcpy ajoute un x00 terminal.
ab_pfetch*
Sur Windows, nous avons actuellement de nombreux faux positifs d'OVERRUN.
bsearch sur table à largeur fixe vs. Littéral
Le modèle de Coverity pour bsearch suppose que bsearch accède à la clé sur toute la largeur de la clé. Si bsearch reçoit une table de taille fixe (maximale), et par exemple strcmp comme fonction de comparaison, alors en réalité, lorsque bsearch est appelé avec un petit littéral comme clé, tout va bien. Hélas, Coverity pense que bsearch lira au-delà de la fin du littéral, même si strcmp ne le fera pas.
NO_EFFECT sur var_arg
Sur Windows, nous avons actuellement un avertissement NO_EFFECT sur toutes les utilisations de va_args.
TAINTED_SCALAR
Coverity avertit pour les utilisations de données contaminées, des données qui pourraient être contrôlées par un attaquant. Cela peut conduire à une corruption de données, une injection de code,...
Lorsque c'est possible, Coverity signale des défauts supplémentaires décrivant l'utilisation dangereuse des données contaminées INTEGER_OVERFLOW.
RW.LITERAL_OPERATOR_NOT_FOUND sur printf avec TEL_Format
Lors de l'utilisation de formats définis par TEL tels que TEL_Flpu, TEL_Fsu, TEL_Fpid,... Coverity nécessite parfois un espace avant le 'T' de TEL_Fxxx.
TAINTED_STRING
Coverity avertit pour les utilisations de données contaminées, des données qui pourraient être contrôlées par un attaquant. Cela peut conduire à une corruption de données, une injection de code, une injection SQL, une traversée de répertoire,
PW.PRINTF_ARG_MISMATCH - * précision ou * taille vs. paramètres size_t ou ptrdiff_t
Constructions ou analyses 64 bits - La norme C stipule que la * précision ou taille sont de type int. Cela représente généralement 4 octets. Sur les constructions 64 bits, size_t et ptrdiff_t sont de 8 octets.
Si j'avais soumis une correction hier, Coverity Connect d'aujourd'hui continuerait à signaler le défaut. Avis collecté par et hébergé sur G2.com.