Compartir a través de


C6327

Actualización: noviembre 2007

C6327

Advertencia C6327: Posible saturación de búfer: SysAllocStringLen copia <número> caracteres de la cadena <variable> sin validar el número de caracteres que se van a copiar. Puede que se bloquee el código

Esta advertencia indica una posible saturación del búfer. SysAllocStringLen asigna una cadena y, a continuación, copia el número de caracteres especificado de la cadena especificada. Debido a que SysAllocStringLen no valida el número de caracteres que copia, si el número de caracteres especificado es mayor que el número de caracteres de la cadena, el código podría bloquearse. Debe pasar el número de caracteres correcto a la función SysAllocString para evitar la saturación del búfer.

Ejemplo

El siguiente ejemplo de código genera esta advertencia:

#include <windows.h>

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

Para corregir esta advertencia, pase el tamaño de cadena correcto, como se muestra en el siguiente código:

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

Vea también

Referencia

sizeof Operator

The sizeof Operator