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);
}