Partager via


C28718

avertissement C28718 : Mémoire tampon non annotée

Cet avertissement est signalé lorsqu’une mémoire tampon passée à une fonction ou retournée par une fonction n’a pas d’annotations SAL (Source Code Annotation Language). Les outils d’analyse statique peuvent utiliser ces annotations pour détecter les dépassements de mémoire tampon. Pour plus d’informations sur l’ajout d’annotations, consultez Utilisation d’annotations SAL pour réduire les défauts de code C/C++.

Actuellement, seuls les tampons de chaînes non constantes sont diagnostiqués avec cet avertissement. Dans l’idéal, toutes les mémoires tampons passées en tant que paramètres de fonction ou retournées par les fonctions doivent être annotées. Les tableaux de wchar_t ou de caractères sont candidats à cet avertissement. Les caractères non signés ne le sont actuellement pas.

Exemple

L’exemple de code suivant génère cet avertissement.

int foo( LPTSTR buffer, size_t cch );  

L’exemple de code suivant évite cet avertissement.

int foo( _Out_writes_(cch) LPTSTR buffer, size_t cch );

Utilisation d’annotations SAL pour réduire les défauts du code C/C++