C6054
Предупреждение C6054: строка <переменная> может не оканчиваться нулем
Данное предупреждение означает, что в функцию, которой требуется строка, завершающаяся нулем, передана строка, не завершающаяся нулем.Функция, которая ожидает нуль в качестве завершения строки, в поиске нуля выйдет за пределы буфера.В результате этой ошибки может возникнуть переполнение буфера, доступное для эксплойта, или сбой программы.В программе следует реализовать проверку того, что строка заканчивается нулем.
Пример
Данное предупреждение создается в следующем коде:
#include <sal.h>
void func( _In_z_ wchar_t* wszStr );
void g ( )
{
wchar_t wcArray[200];
func(wcArray); // Warning C6054
}
Для устранения этого предупреждения перед вызовом функции func() завершите переменную wcArray знаком конца строки, как показано в следующем коде:
#include <sal.h>
void func( _In_z_ wchar_t* wszStr );
void g( )
{
wchar_t wcArray[200];
wcArray[0]= '\0';
func(wcArray);
}