C6054

Actualización: noviembre 2007

C6054

Advertencia C6054: La cadena <variable> no puede terminar en cero

Esta advertencia indica que a una función que requiere una cadena terminada en cero se le pasó una cadena no terminada en cero. Una función que espera una cadena terminada en cero excederá el final del búfer para buscar el cero. Este defecto puede producir un error de saturación del búfer explotable o un bloqueo. El programa debe asegurarse de que la cadena finaliza con un cero.

Ejemplo

El código siguiente genera esta advertencia:

#include<codeanalysis\sourceannotations.h>
using namespace vc_attributes;

void f ([Pre(NullTerminated=Yes)] wchar_t* v);

void g ( )
{
   wchar_t v[200];
   f(v); // C6054 - v is not "null-terminated" before the call to f
}

Para corregir esta advertencia, termine en null v antes de llamar a la función f, como se muestra en el siguiente ejemplo de código:

void g( )
{
  wchar_t v[200]; 
  v[0]= '\0';
  f(v);
}

Vea también

Conceptos

Información general sobre anotaciones

Referencia

C6053

NullTerminated