Partilhar via


C6327

Aviso C6327: Saturação do buffer possíveis: Cópias SysAllocStringLen <number>caracteres da seqüência de caracteres <variável>sem validar o número de caracteres a serem copiados.O código pode apresentar falhar

Este aviso indica uma possível saturação de buffer.SysAllocStringLen aloca uma seqüência de caracteres e, em seguida, copia o número especificado de caracteres da seqüência de caracteres especificada.Porque SysAllocStringLen não valida o número de caracteres para copiar, se o número de caracteres especificado é maior do que o número de caracteres na seqüência de caracteres, o código poderá falhar.Você deve passar o número correto de caracteres para a função SysAllocString para evitar a saturação de buffer.

Exemplo

O código de exemplo a seguir gera este aviso:

#include <windows.h>

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

Para corrigir este aviso, o comprimento da seqüência de caracteres correto psistema autônomos sistema autônomo mostrado no código a seguir:

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

Consulte também

Referência

sizeof Operador

The sizeof Operador