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