[openjk] 05/09: Shared: Merge ioquake/ioq3 at 376267d534476a875d8b9228149c4ee18b74a4fd
Simon McVittie
smcv at debian.org
Tue Mar 14 11:31:23 UTC 2017
This is an automated email from the git hooks/post-receive script.
smcv pushed a commit to branch debian/master
in repository openjk.
commit 8956a35e7b91c4a0dd1fa6db1d28c7f0efbab2d7
Author: Ensiform <ensiform at gmail.com>
Date: Mon Mar 13 22:20:58 2017 -0500
Shared: Merge ioquake/ioq3 at 376267d534476a875d8b9228149c4ee18b74a4fd
Don't load .pk3s as .dlls, and don't load user config files from .pk3s.
---
code/client/cl_main.cpp | 2 +-
code/qcommon/files.cpp | 8 ++++++++
codemp/client/cl_main.cpp | 2 +-
codemp/qcommon/files.cpp | 8 ++++++++
shared/sys/sys_main.cpp | 7 +++++++
5 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/code/client/cl_main.cpp b/code/client/cl_main.cpp
index 43e36de..bac6e4c 100644
--- a/code/client/cl_main.cpp
+++ b/code/client/cl_main.cpp
@@ -1084,7 +1084,7 @@ void CL_InitRef( void ) {
GetRefAPI_t GetRefAPI;
Com_Printf( "----- Initializing Renderer ----\n" );
- cl_renderer = Cvar_Get( "cl_renderer", DEFAULT_RENDER_LIBRARY, CVAR_ARCHIVE|CVAR_LATCH );
+ cl_renderer = Cvar_Get( "cl_renderer", DEFAULT_RENDER_LIBRARY, CVAR_ARCHIVE|CVAR_LATCH|CVAR_PROTECTED );
Com_sprintf( dllName, sizeof( dllName ), "%s_" ARCH_STRING DLL_EXT, cl_renderer->string );
diff --git a/code/qcommon/files.cpp b/code/qcommon/files.cpp
index 24e9290..c35d0e0 100644
--- a/code/qcommon/files.cpp
+++ b/code/qcommon/files.cpp
@@ -1258,6 +1258,7 @@ long FS_FOpenFileRead( const char *filename, fileHandle_t *file, qboolean unique
long hash;
//unz_s *zfi;
//void *temp;
+ bool isUserConfig = false;
hash = 0;
@@ -1291,6 +1292,8 @@ long FS_FOpenFileRead( const char *filename, fileHandle_t *file, qboolean unique
return -1;
}
+ isUserConfig = !Q_stricmp( filename, "autoexec_sp.cfg" ) || !Q_stricmp( filename, Q3CONFIG_NAME );
+
//
// search through the path, one element at a time
//
@@ -1316,6 +1319,11 @@ long FS_FOpenFileRead( const char *filename, fileHandle_t *file, qboolean unique
}
// is the element a pak file?
if ( search->pack && search->pack->hashTable[hash] ) {
+ // autoexec_sp.cfg and openjk_sp.cfg can only be loaded outside of pk3 files.
+ if ( isUserConfig ) {
+ continue;
+ }
+
// look through all the pak file elements
pak = search->pack;
pakFile = pak->hashTable[hash];
diff --git a/codemp/client/cl_main.cpp b/codemp/client/cl_main.cpp
index 07d85db..3de7f1a 100644
--- a/codemp/client/cl_main.cpp
+++ b/codemp/client/cl_main.cpp
@@ -2364,7 +2364,7 @@ void CL_InitRef( void ) {
Com_Printf( "----- Initializing Renderer ----\n" );
- cl_renderer = Cvar_Get( "cl_renderer", DEFAULT_RENDER_LIBRARY, CVAR_ARCHIVE|CVAR_LATCH, "Which renderer library to use" );
+ cl_renderer = Cvar_Get( "cl_renderer", DEFAULT_RENDER_LIBRARY, CVAR_ARCHIVE|CVAR_LATCH|CVAR_PROTECTED, "Which renderer library to use" );
Com_sprintf( dllName, sizeof( dllName ), "%s_" ARCH_STRING DLL_EXT, cl_renderer->string );
diff --git a/codemp/qcommon/files.cpp b/codemp/qcommon/files.cpp
index cd4b5ee..4fb8b4a 100644
--- a/codemp/qcommon/files.cpp
+++ b/codemp/qcommon/files.cpp
@@ -1267,6 +1267,7 @@ long FS_FOpenFileRead( const char *filename, fileHandle_t *file, qboolean unique
//unz_s *zfi;
//void *temp;
int l;
+ bool isUserConfig = false;
hash = 0;
@@ -1300,6 +1301,8 @@ long FS_FOpenFileRead( const char *filename, fileHandle_t *file, qboolean unique
return -1;
}
+ isUserConfig = !Q_stricmp( filename, "autoexec.cfg" ) || !Q_stricmp( filename, Q3CONFIG_CFG );
+
//
// search through the path, one element at a time
//
@@ -1330,6 +1333,11 @@ long FS_FOpenFileRead( const char *filename, fileHandle_t *file, qboolean unique
continue;
}
+ // autoexec.cfg and openjk.cfg can only be loaded outside of pk3 files.
+ if ( isUserConfig ) {
+ continue;
+ }
+
// look through all the pak file elements
pak = search->pack;
pakFile = pak->hashTable[hash];
diff --git a/shared/sys/sys_main.cpp b/shared/sys/sys_main.cpp
index dafe319..ac50708 100644
--- a/shared/sys/sys_main.cpp
+++ b/shared/sys/sys_main.cpp
@@ -298,6 +298,13 @@ void *Sys_LoadDll( const char *name, qboolean useSystemLib )
{
void *dllhandle = NULL;
+ // Don't load any DLLs that end with the pk3 extension
+ if ( COM_CompareExtension( name, ".pk3" ) )
+ {
+ Com_Printf( S_COLOR_YELLOW "WARNING: Rejecting DLL named \"%s\"", name );
+ return NULL;
+ }
+
if ( useSystemLib )
{
Com_Printf( "Trying to load \"%s\"...\n", name );
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/openjk.git
More information about the Pkg-games-commits
mailing list