Partager via


C6327

Mise à jour : novembre 2007

C6327

Avertissement C6327 : dépassement de mémoire tampon possible : SysAllocStringLen copie les caractères <numéro> de la chaîne <variable> sans valider le nombre de caractères à copier. Le code risque de se bloquer

Cet avertissement indique un dépassement de mémoire tampon potentiel. SysAllocStringLen alloue une chaîne puis copie le nombre spécifié de caractères de la chaîne spécifiée. SysAllocStringLen ne validant pas le nombre de caractères à copier, le code risque de se bloquer si le nombre de caractères spécifié est supérieur au nombre de caractères dans la chaîne. Vous devez passer un nombre correct de caractères dans la fonction SysAllocString pour éviter un dépassement de mémoire tampon.

Exemple

L'exemple de code suivant génère cet avertissement :

#include <windows.h>

void f ()
{
  BSTR bstr;
  bstr = SysAllocStringLen(L"txt", 5); // warning 6327
  // code...
  SysFreeString(bstr);
}

Pour corriger cet avertissement, passez la longueur de chaîne correcte, comme indiqué dans le code suivant :

#include <windows.h>
void f()
{
  BSTR bstr;
  wchar_t *greeting=L"Hello, World!";
  
  bstr = SysAllocStringLen(greeting, sizeof(greeting));
  // code...
  SysFreeString(bstr);
} 

Voir aussi

Référence

sizeof Operator

The sizeof Operator