[iortcw] 93/95: MP: Add whitelist for dll extraction

Simon McVittie smcv at debian.org
Fri Sep 8 10:42:30 UTC 2017


This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to tag 1.51
in repository iortcw.

commit 2a2f6d91613a8054a95728508d4b70eeeccc1158
Author: MAN-AT-ARMS <M4N4T4RMS at gmail.com>
Date:   Mon Jun 5 18:10:06 2017 -0400

    MP: Add whitelist for dll extraction
---
 MP/code/qcommon/files.c | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/MP/code/qcommon/files.c b/MP/code/qcommon/files.c
index 4ed3d1d..b07ccca 100644
--- a/MP/code/qcommon/files.c
+++ b/MP/code/qcommon/files.c
@@ -203,6 +203,18 @@ static const unsigned int mppak_checksums[] = {
 	-137448799u,
 	2149774797u
 };
+
+static const unsigned int binpak_checksums[] = {
+	4022537001u,	// mp_bin.pk3 (1.4/1.41)
+	1215509415u,	// mp_bin0.pk3 (1.5a)
+	3375536862u,	// Degeneration (1.11)
+	2977960779u,	// Omni-Bot (0.81/0.82)
+	618492725u,	// Omnit-Bot (0.85)
+	2205235539u,	// OSP (0.83)
+	718455065u,	// OSP (0.9)
+	220076119u,	// Wild West (1.613)
+	2849242342u	// Wolftactics (1.0/1.01)
+};
 #endif
 
 #define MAX_ZPATH           256
@@ -1583,10 +1595,22 @@ int FS_FindVM(void **startSearch, char *found, int foundlen, const char *name, q
 			// that they can be referenced
 			if (Q_stricmp(name, "qagame"))
 			{
+				int index;
+				qboolean whitelisted = qfalse;
+
 				netpath = FS_BuildOSPath(fs_homepath->string, pack->pakGamename, dllName);
+			
+				// Check whether this pak's checksum is on the whitelist
+				for(index = 0; index < ARRAY_LEN(binpak_checksums); index++)
+				{
+					if(pack->checksum == binpak_checksums[index])
+					{
+						whitelisted = FS_CL_ExtractFromPakFile(search, netpath, dllName, NULL);
+					}
+				}
 
 				if (FS_FOpenFileReadDir(dllName, search, NULL, qfalse, unpure) > 0
-						&& FS_CL_ExtractFromPakFile(search, netpath, dllName, NULL))
+						&& whitelisted)
 				{
 					Com_Printf( "Loading %s dll from %s\n", name, pack->pakFilename );
 					Q_strncpyz(found, netpath, foundlen);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git



More information about the Pkg-games-commits mailing list