共用方式為


C6327

更新:2007 年 11 月

警告 C6327: 可能的緩衝區滿溢: SysAllocStringLen 複製 <number> 個字元 (從字串 <variable>),但未驗證要複製的字元數。程式碼可能會損毀

這則警告表示可能會發生緩衝區滿溢。SysAllocStringLen 會配置字串,然後從所指定之字串複製指定的字元數目。因為 SysAllocStringLen 不會驗證要複製的字元數目,所以如果指定之字元數目大於該字串中的字元數目,則程式碼可能會損毀。您必須將正確的字元數目傳遞給 SysAllocString 函式,才可避免緩衝區滿溢。

範例

下列範例程式碼會產生這則警告:

#include <windows.h>

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

若要更正這個警告,請傳遞正確的字串長度,如下列程式碼所示:

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

請參閱

參考

sizeof Operator

The sizeof Operator