C6054C6054

avertissement C6054 : chaîne <variable > ne peut pas être terminé par zérowarning C6054: string <variable> may not be zero-terminated

Cet avertissement indique qu’une fonction qui nécessite la chaîne terminée par zéro a été passé à une non nulle chaîne terminée par une.This warning indicates that a function that requires zero-terminated string was passed a non-zero terminated string. Une fonction qui attend une chaîne se terminant par zéro va au-delà de la fin de la mémoire tampon pour rechercher la valeur zéro.A function that expects a zero-terminated string will go beyond the end of the buffer to look for the zero. Ce défaut peut provoquer une panne ou à une erreur de dépassement de mémoire tampon exploitable.This defect might cause an exploitable buffer overrun error or crash. Le programme devez vous assurer que la chaîne se termine par un zéro.The program should make sure that the string ends with a zero.

ExempleExample

Le code suivant génère cet avertissement :The following code generates this warning:


#include <sal.h>  

void func( _In_z_ wchar_t* wszStr );  

void g ( )  
{  
    wchar_t wcArray[200];  
    func(wcArray); // Warning C6054  
}  

Pour corriger cet avertissement,-terminez wcArray avant d’appeler la fonction func() comme indiqué dans l’exemple de code suivant :To correct this warning, null-terminate wcArray before calling function func() as shown in the following sample code:


#include <sal.h>  

void func( _In_z_ wchar_t* wszStr );  

void g( )  
{  
    wchar_t wcArray[200];   
    wcArray[0]= '\0';  
    func(wcArray);  
}  

Voir aussiSee Also

C6053 C6053
Utilisation d’Annotations SAL pour réduire les défauts du codeUsing SAL Annotations to reduce code defects