aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--code/client/cl_main.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/code/client/cl_main.c b/code/client/cl_main.c
index 9a1bcf6..da5d116 100644
--- a/code/client/cl_main.c
+++ b/code/client/cl_main.c
@@ -1443,6 +1443,13 @@ void CL_NextDownload(void) {
*s++ = 0;
else
s = localName + strlen(localName); // point at the nul byte
+
+ // Make sure the server cannot make us write to non-quake3 directories.
+ if(strstr(localName, "../"))
+ {
+ Com_Error(ERR_DROP, "CL_NextDownload: Invalid download name %s", localName);
+ return;
+ }
CL_BeginDownload( localName, remoteName );