Console segfault fix

ed.str is deallocated when console_ui returns. Dereferencing the
returned pointer to ed.str therefore results in bad things.
This commit is contained in:
jacksonmj 2011-01-30 22:37:59 +00:00
parent f97990fedd
commit e2b916a91f
2 changed files with 4 additions and 1 deletions

View File

@ -3883,7 +3883,7 @@ char *console_ui(pixel *vid_buf,char error[255]) { //TODO: error messages, show
currentcommand->prev_command = last_command;
currentcommand->command = mystrdup(ed.str);
last_command = currentcommand;
return ed.str;
return currentcommand->command;
}
if (sdl_key==SDLK_ESCAPE || sdl_key==SDLK_BACKQUOTE)
{

View File

@ -1707,6 +1707,7 @@ int main(int argc, char *argv[])
//char error[255] = "error!";
sys_pause = 1;
console = console_ui(vid_buf,error);
console = mystrdup(console);
strcpy(error,"");
if(console && strcmp(console, "")!=0 && strncmp(console, " ", 1)!=0)
{
@ -1716,6 +1717,7 @@ int main(int argc, char *argv[])
console5 = strtok(NULL, " ");
if(strcmp(console2, "quit")==0)
{
free(console);
break;
}
else if(strcmp(console2, "load")==0 && console3)
@ -1955,6 +1957,7 @@ int main(int argc, char *argv[])
else
sprintf(error, "Invalid Command", console2);
}
free(console);
if(!console_mode)
hud_enable = 1;
}