다음을 통해 공유


C6327

업데이트: 2007년 11월

C6327

경고 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