work towards a more secure qfs

This commit is contained in:
Bill Currie 2003-02-14 22:36:10 +00:00
parent 68d2167c9e
commit 851d203916
19 changed files with 193 additions and 167 deletions

View file

@ -253,7 +253,7 @@ CL_Record_f (void)
} else
track = -1;
snprintf (name, sizeof (name), "%s/%s", qfs_gamedir_path, Cmd_Argv (1));
snprintf (name, sizeof (name), "%s/%s", qfs_gamedir->dir.def, Cmd_Argv (1));
// start the map up
//
@ -265,13 +265,12 @@ CL_Record_f (void)
#ifdef HAVE_ZLIB
if (demo_gzip->int_val) {
QFS_DefaultExtension (name, ".dem.gz");
cls.demofile = Qopen (name, va ("wbz%d",
bound (1, demo_gzip->int_val, 9)));
cls.demofile = QFS_WOpen (name, demo_gzip->int_val);
} else
#endif
{
QFS_DefaultExtension (name, ".dem");
cls.demofile = Qopen (name, "wb");
cls.demofile = QFS_WOpen (name, 0);
}
if (!cls.demofile) {

View file

@ -285,8 +285,8 @@ Host_WriteConfiguration (void)
// dedicated servers initialize the host but don't parse and set the
// config.cfg cvars
if (host_initialized && !isDedicated && cl_writecfg->int_val) {
char *path = va ("%s/config.cfg", qfs_gamedir_path);
f = Qopen (path, "w");
char *path = va ("%s/config.cfg", qfs_gamedir->dir.def);
f = QFS_WOpen (path, 0);
if (!f) {
Con_Printf ("Couldn't write config.cfg.\n");
return;

View file

@ -465,11 +465,11 @@ Host_Savegame_f (void)
}
}
snprintf (name, sizeof (name), "%s/%s", qfs_gamedir_path, Cmd_Argv (1));
snprintf (name, sizeof (name), "%s/%s", qfs_gamedir->dir.def, Cmd_Argv (1));
QFS_DefaultExtension (name, ".sav");
Con_Printf ("Saving game to %s...\n", name);
f = Qopen (name, "w");
f = QFS_WOpen (name, 0);
if (!f) {
Con_Printf ("ERROR: couldn't open.\n");
return;
@ -528,7 +528,8 @@ Host_Loadgame_f (void)
cls.demonum = -1; // stop demo loop in case this fails
snprintf (name, sizeof (name), "%s/%s", qfs_gamedir_path, Cmd_Argv (1));
snprintf (name, sizeof (name), "%s/%s/%s", fs_userpath->string,
qfs_gamedir->dir.def, Cmd_Argv (1));
QFS_DefaultExtension (name, ".sav");
// we can't call SCR_BeginLoadingPlaque, because too much stack space has