C6054
警告 C6054: 文字列 <変数> は 0 で終了しない可能性があります。
この警告は、0 で終了する文字列が必要な関数に 0 以外で終了する文字列が渡されたことを示します。0 で終了する文字列を想定する関数では、バッファーの終端を超えて 0 を検索してしまいます。この問題によって、攻撃に利用される可能性のあるバッファー オーバーラン エラーまたはクラッシュが発生する場合があります。プログラムで、文字列が 0 で終わることを確認する必要があります。
使用例
この警告が発生するコード例を次に示します。
#include <sal.h>
void func( _In_z_ wchar_t* wszStr );
void g ( )
{
wchar_t wcArray[200];
func(wcArray); // Warning C6054
}
この警告を解決するには、次のサンプルコードに示すように、関数 func() を呼び出す前に wcArray を null で終了させます。
#include <sal.h>
void func( _In_z_ wchar_t* wszStr );
void g( )
{
wchar_t wcArray[200];
wcArray[0]= '\0';
func(wcArray);
}