When I run this code, the variable s has MZ as the first 2 characters, I never put them there, I don't know how they got there. I think it might have something to do with strcat, does strcat modify the source paramater at all?
void Con_Draw()
{
int i;
char *s;
s = malloc(256*CON_LINES);
s[0]=0;
for(i=CON_LINES ; i>0 ; i--)
strcat(s,con_lines[i]);
Draw_String(-3,-1.5,s);
free(s);
}