C6327
Aktualisiert: November 2007
C6327
Warnung C6327: Potenzieller Pufferüberlauf: SysAllocStringLen kopiert <Anzahl> Zeichen aus der Zeichenfolge <Variable>, ohne die zu kopierende Zeichenanzahl zu validieren. Dies kann einen Codeabsturz zur Folge haben.
Diese Warnung weist auf einen potenziellen Pufferüberlauf hin. SysAllocStringLen ordnet eine Zeichenfolge zu und kopiert dann die festgelegte Anzahl von Zeichen aus der angegebenen Zeichenfolge. Da SysAllocStringLen die Anzahl der zu kopierenden Zeichen nicht überprüft, kann es zu einem Codeabsturz kommen, wenn die festgelegte Anzahl von Zeichen größer ist als die Anzahl der Zeichen in der Zeichenfolge. Zu Vermeidung eines Pufferüberlaufs müssen Sie die richtige Anzahl von Zeichen an die SysAllocString-Funktion übergeben.
Beispiel
Im folgenden Beispielcode wird diese Warnung generiert:
#include <windows.h>
void f ()
{
BSTR bstr;
bstr = SysAllocStringLen(L"txt", 5); // warning 6327
// code...
SysFreeString(bstr);
}
Um diese Warnung zu korrigieren, übergeben Sie die richtige Zeichenfolgenlänge, wie im folgenden Code gezeigt:
#include <windows.h>
void f()
{
BSTR bstr;
wchar_t *greeting=L"Hello, World!";
bstr = SysAllocStringLen(greeting, sizeof(greeting));
// code...
SysFreeString(bstr);
}