arogue5: close security holes.
Prevent whoami (player name), file_name, and score_file from being changed if the systemwide save location is being used.
This commit is contained in:
parent
4c16144c6b
commit
5ce56875ec
3 changed files with 49 additions and 14 deletions
|
|
@ -41,7 +41,10 @@ save_game()
|
|||
mpos = 0;
|
||||
if (file_name[0] != '\0')
|
||||
{
|
||||
msg("Save file (%s)? ", file_name);
|
||||
if (use_savedir)
|
||||
msg("Save game? ");
|
||||
else
|
||||
msg("Save file (%s)? ", file_name);
|
||||
do
|
||||
{
|
||||
c = readchar();
|
||||
|
|
@ -53,6 +56,10 @@ save_game()
|
|||
msg("File name: %s", file_name);
|
||||
goto gotfile;
|
||||
}
|
||||
if (use_savedir) {
|
||||
msg("");
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
do
|
||||
|
|
@ -69,7 +76,11 @@ save_game()
|
|||
strcpy(file_name, buf);
|
||||
gotfile:
|
||||
if ((savef = fopen(file_name, "w")) == NULL)
|
||||
{
|
||||
msg(strerror(errno)); /* fake perror() */
|
||||
if (use_savedir)
|
||||
return FALSE;
|
||||
}
|
||||
} while (savef == NULL);
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue