There is a chance that the input string is larger than size, and on VMS,

this wasn't checked and could possibly be exploitable (slim chance, but still)
This commit is contained in:
Richard Levitte 2002-05-29 08:31:30 +00:00
parent c1febe86d1
commit 1af4d83565

View file

@ -228,9 +228,16 @@ void program_name(char *in, char *out, int size)
q=strrchr(p,'.');
if (q == NULL)
q = in+size;
strncpy(out,p,q-p);
out[q-p]='\0';
q = p + strlen(p);
strncpy(out,p,size-1);
if (q-p >= size)
{
out[size-1]='\0';
}
else
{
out[q-p]='\0';
}
}
#else
void program_name(char *in, char *out, int size)