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:
parent
f97990fedd
commit
e2b916a91f
@ -3883,7 +3883,7 @@ char *console_ui(pixel *vid_buf,char error[255]) { //TODO: error messages, show
|
|||||||
currentcommand->prev_command = last_command;
|
currentcommand->prev_command = last_command;
|
||||||
currentcommand->command = mystrdup(ed.str);
|
currentcommand->command = mystrdup(ed.str);
|
||||||
last_command = currentcommand;
|
last_command = currentcommand;
|
||||||
return ed.str;
|
return currentcommand->command;
|
||||||
}
|
}
|
||||||
if (sdl_key==SDLK_ESCAPE || sdl_key==SDLK_BACKQUOTE)
|
if (sdl_key==SDLK_ESCAPE || sdl_key==SDLK_BACKQUOTE)
|
||||||
{
|
{
|
||||||
|
@ -1707,6 +1707,7 @@ int main(int argc, char *argv[])
|
|||||||
//char error[255] = "error!";
|
//char error[255] = "error!";
|
||||||
sys_pause = 1;
|
sys_pause = 1;
|
||||||
console = console_ui(vid_buf,error);
|
console = console_ui(vid_buf,error);
|
||||||
|
console = mystrdup(console);
|
||||||
strcpy(error,"");
|
strcpy(error,"");
|
||||||
if(console && strcmp(console, "")!=0 && strncmp(console, " ", 1)!=0)
|
if(console && strcmp(console, "")!=0 && strncmp(console, " ", 1)!=0)
|
||||||
{
|
{
|
||||||
@ -1716,6 +1717,7 @@ int main(int argc, char *argv[])
|
|||||||
console5 = strtok(NULL, " ");
|
console5 = strtok(NULL, " ");
|
||||||
if(strcmp(console2, "quit")==0)
|
if(strcmp(console2, "quit")==0)
|
||||||
{
|
{
|
||||||
|
free(console);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if(strcmp(console2, "load")==0 && console3)
|
else if(strcmp(console2, "load")==0 && console3)
|
||||||
@ -1955,6 +1957,7 @@ int main(int argc, char *argv[])
|
|||||||
else
|
else
|
||||||
sprintf(error, "Invalid Command", console2);
|
sprintf(error, "Invalid Command", console2);
|
||||||
}
|
}
|
||||||
|
free(console);
|
||||||
if(!console_mode)
|
if(!console_mode)
|
||||||
hud_enable = 1;
|
hud_enable = 1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user