경고 C6054
문자열 'variable'는 0으로 종료되지 않을 수 있습니다.
설명
이 경고는 0으로 끝나는 문자열이 필요한 함수가 종료되지 않은 문자열을 전달했음을 나타냅니다. 0으로 끝나는 문자열을 예상하는 함수는 버퍼 끝 이후의 0을 찾을 수 있습니다. 이 결함으로 인해 악용 가능한 버퍼 오버런 오류 또는 충돌이 발생할 수 있습니다. 프로그램에서 전달된 문자열이 0으로 끝나는지 확인해야 합니다.
코드 분석 이름: MISSING_ZERO_TERMINATION2
예시
다음 코드는 이 경고를 생성합니다.
// Warning C6054_bad.cpp
// Compile using: cl /W4 /EHsc /c /analyze C6054_bad.cpp
#include <sal.h>
void func( _In_z_ wchar_t* wszStr );
void g ( )
{
wchar_t wcArray[200] = { 'h', 'e', 'l', 'l', 'o' };
func(wcArray); // Warning C6054
}
이 경고를 수정하려면 다음 샘플 코드와 같이 함수 func()
를 호출하기 전에 null 종료 wcArray
합니다.
// C6054_good.cpp
// Compile using: cl /W4 /EHsc /c /analyze C6054_good.cpp
#include <sal.h>
void func( _In_z_ wchar_t* wszStr );
void g ( )
{
wchar_t wcArray[200] = { 'h', 'e', 'l', 'l', 'o', '\0' };
func(wcArray); // OK
}
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기