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:39 +00:00
parent 9a26adf598
commit 6298bf9073

View File

@ -310,9 +310,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)