filesystem: disallow path traversal in FS_Delete and FS_Rename
This commit is contained in:
parent
2c5030ab45
commit
0c8da36a0b
1 changed files with 8 additions and 0 deletions
|
@ -3119,6 +3119,10 @@ qboolean FS_Rename( const char *oldname, const char *newname )
|
||||||
char oldname2[MAX_SYSPATH], newname2[MAX_SYSPATH], oldpath[MAX_SYSPATH], newpath[MAX_SYSPATH];
|
char oldname2[MAX_SYSPATH], newname2[MAX_SYSPATH], oldpath[MAX_SYSPATH], newpath[MAX_SYSPATH];
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
// a1ba: disallow path traversal
|
||||||
|
if( FS_CheckNastyPath( oldname ) || FS_CheckNastyPath( newname ))
|
||||||
|
return false;
|
||||||
|
|
||||||
if( !fs_writepath )
|
if( !fs_writepath )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -3167,6 +3171,10 @@ qboolean GAME_EXPORT FS_Delete( const char *path )
|
||||||
char path2[MAX_SYSPATH], real_path[MAX_SYSPATH];
|
char path2[MAX_SYSPATH], real_path[MAX_SYSPATH];
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
// a1ba: disallow path traversal
|
||||||
|
if( FS_CheckNastyPath( path ))
|
||||||
|
return false;
|
||||||
|
|
||||||
if( !fs_writepath || !COM_CheckString( path ))
|
if( !fs_writepath || !COM_CheckString( path ))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue