aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeel Chauhan <nc@FreeBSD.org>2022-09-12 17:00:58 +0000
committerNeel Chauhan <nc@FreeBSD.org>2022-09-12 17:02:51 +0000
commit9b5d73efd1eb88d6555f12d4e92cbf9f1aa81766 (patch)
treeafe7ec97bb4e684e4ca6b8ed25abc31e6199185b
parenta77b25802226a3e533ef4013e36ab28ad67265b7 (diff)
downloadports-9b5d73efd1eb88d6555f12d4e92cbf9f1aa81766.tar.gz
ports-9b5d73efd1eb88d6555f12d4e92cbf9f1aa81766.zip
games/openarena: Fix crashing bug when downloading maps from the server
PR: 266384 MFH: 2022Q3 (bugfix blanket) Reported by: Kaminar <kaminar AT seznam DOT cz> (cherry picked from commit 3b4d9afddf15b9e5872a9ef5d94592ebff063cd4)
-rw-r--r--games/openarena/Makefile1
-rw-r--r--games/openarena/files/patch-code_client_snd__openal.c8
-rw-r--r--games/openarena/files/patch-code_qcommon_files.c40
-rw-r--r--games/openarena/files/patch-code_qcommon_qcommon.h10
4 files changed, 29 insertions, 30 deletions
diff --git a/games/openarena/Makefile b/games/openarena/Makefile
index c1095157ca97..b2d64e11e6e9 100644
--- a/games/openarena/Makefile
+++ b/games/openarena/Makefile
@@ -2,6 +2,7 @@
PORTNAME= openarena
PORTVERSION= ${GAMEVERSION}.s${SVNREVISION}
+PORTREVISION= 1
PORTEPOCH= 2
MASTER_SITES= SF/oarena/src \
http://files.poulsander.com/~poul19/public_files/oa/dev088/
diff --git a/games/openarena/files/patch-code_client_snd__openal.c b/games/openarena/files/patch-code_client_snd__openal.c
index 136e269b1de7..930229586f23 100644
--- a/games/openarena/files/patch-code_client_snd__openal.c
+++ b/games/openarena/files/patch-code_client_snd__openal.c
@@ -9,16 +9,16 @@
#endif
/*
-@@ -2358,6 +2358,12 @@ qboolean S_AL_Init( soundInterface_t *si
+@@ -2357,6 +2357,12 @@ qboolean S_AL_Init( soundInterface_t *si )
+ s_alDriver = Cvar_Get( "s_alDriver", ALDRIVER_DEFAULT, CVAR_ARCHIVE | CVAR_LATCH );
s_alDevice = Cvar_Get("s_alDevice", "", CVAR_ARCHIVE | CVAR_LATCH);
-
++
+ if ( COM_CompareExtension( s_alDriver->string, ".pk3" ) )
+ {
+ Com_Printf( S_COLOR_RED "Rejecting s_alDriver named \"%s\"\n", s_alDriver->string );
+ return qfalse;
+ }
-+
+
// Load QAL
if( !QAL_Init( s_alDriver->string ) )
- {
diff --git a/games/openarena/files/patch-code_qcommon_files.c b/games/openarena/files/patch-code_qcommon_files.c
index b35962d7c3e1..e1cebd665482 100644
--- a/games/openarena/files/patch-code_qcommon_files.c
+++ b/games/openarena/files/patch-code_qcommon_files.c
@@ -1,6 +1,6 @@
--- code/qcommon/files.c.orig 2011-12-24 12:29:32 UTC
+++ code/qcommon/files.c
-@@ -195,6 +195,9 @@ static const unsigned int missionpak_che
+@@ -195,6 +195,9 @@ static const unsigned int missionpak_checksums[] =
1438664554u
};
@@ -10,7 +10,7 @@
// if this is defined, the executable positively won't work with any paks other
// than the demo pak, even if productid is present. This is only used for our
// last demo release to prevent the mac and linux users from using the demo
-@@ -250,6 +253,7 @@ static cvar_t *fs_apppath;
+@@ -250,6 +253,7 @@ static cvar_t *fs_basepath;
#endif
static cvar_t *fs_basepath;
@@ -59,7 +59,7 @@
remove( osPath );
}
-@@ -564,7 +570,7 @@ FS_HomeRemove
+@@ -564,7 +570,7 @@ void FS_HomeRemove( const char *homePath ) {
===========
*/
void FS_HomeRemove( const char *homePath ) {
@@ -68,7 +68,7 @@
remove( FS_BuildOSPath( fs_homepath->string,
fs_gamedir, homePath ) );
-@@ -643,7 +649,7 @@ fileHandle_t FS_SV_FOpenFileWrite( const
+@@ -643,7 +649,7 @@ fileHandle_t FS_SV_FOpenFileWrite( const char *filenam
Com_Printf( "FS_SV_FOpenFileWrite: %s\n", ospath );
}
@@ -86,20 +86,18 @@
char *from_ospath, *to_ospath;
if ( !fs_searchpaths ) {
-@@ -754,7 +760,11 @@ void FS_SV_Rename( const char *from, con
+@@ -754,7 +760,9 @@ void FS_SV_Rename( const char *from, const char *to )
Com_Printf( "FS_SV_Rename: %s --> %s\n", from_ospath, to_ospath );
}
- FS_CheckFilenameIsNotExecutable( to_ospath, __func__ );
-+ FS_CheckFilenameIsMutable( to_ospath, __func__ );
-+
+ if ( safe ) {
+ FS_CheckFilenameIsMutable( to_ospath, __func__ );
+ }
rename(from_ospath, to_ospath);
}
-@@ -784,7 +794,7 @@ void FS_Rename( const char *from, const
+@@ -784,7 +792,7 @@ void FS_Rename( const char *from, const char *to ) {
Com_Printf( "FS_Rename: %s --> %s\n", from_ospath, to_ospath );
}
@@ -108,7 +106,7 @@
rename(from_ospath, to_ospath);
}
-@@ -843,7 +853,7 @@ fileHandle_t FS_FOpenFileWrite( const ch
+@@ -843,7 +851,7 @@ fileHandle_t FS_FOpenFileWrite( const char *filename )
Com_Printf( "FS_FOpenFileWrite: %s\n", ospath );
}
@@ -117,7 +115,7 @@
if( FS_CreatePath( ospath ) ) {
return 0;
-@@ -891,7 +901,7 @@ fileHandle_t FS_FOpenFileAppend( const c
+@@ -891,7 +899,7 @@ fileHandle_t FS_FOpenFileAppend( const char *filename
Com_Printf( "FS_FOpenFileAppend: %s\n", ospath );
}
@@ -126,7 +124,7 @@
if( FS_CreatePath( ospath ) ) {
return 0;
-@@ -963,6 +973,7 @@ int FS_FOpenFileRead( const char *filena
+@@ -963,6 +971,7 @@ int FS_FOpenFileRead( const char *filename, fileHandle
FILE *temp;
int l;
char demoExt[16];
@@ -134,7 +132,7 @@
hash = 0;
-@@ -970,11 +981,22 @@ int FS_FOpenFileRead( const char *filena
+@@ -970,11 +979,22 @@ int FS_FOpenFileRead( const char *filename, fileHandle
Com_Error( ERR_FATAL, "Filesystem call made without initialization\n" );
}
@@ -157,7 +155,7 @@
hash = FS_HashFileName(filename, search->pack->hashSize);
}
// is the element a pak file?
-@@ -1040,6 +1062,14 @@ int FS_FOpenFileRead( const char *filena
+@@ -1040,6 +1060,14 @@ int FS_FOpenFileRead( const char *filename, fileHandle
for ( search = fs_searchpaths ; search ; search = search->next ) {
//
if ( search->pack ) {
@@ -172,7 +170,7 @@
hash = FS_HashFileName(filename, search->pack->hashSize);
}
// is the element a pak file?
-@@ -1657,7 +1687,7 @@ Creates a new pak_t in the search chain
+@@ -1657,7 +1685,7 @@ of a zip file.
of a zip file.
=================
*/
@@ -181,7 +179,7 @@
{
fileInPack_t *buildBuffer;
pack_t *pack;
-@@ -1666,11 +1696,12 @@ static pack_t *FS_LoadZipFile(const char
+@@ -1666,11 +1694,12 @@ static pack_t *FS_LoadZipFile(const char *zipfile, con
unz_global_info gi;
char filename_inzip[MAX_ZPATH];
unz_file_info file_info;
@@ -195,7 +193,7 @@
fs_numHeaderLongs = 0;
-@@ -1714,6 +1745,7 @@ static pack_t *FS_LoadZipFile(const char
+@@ -1714,6 +1743,7 @@ static pack_t *FS_LoadZipFile(const char *zipfile, con
Q_strncpyz( pack->pakFilename, zipfile, sizeof( pack->pakFilename ) );
Q_strncpyz( pack->pakBasename, basename, sizeof( pack->pakBasename ) );
@@ -203,7 +201,7 @@
// strip .pk3 if needed
if ( strlen( pack->pakBasename ) > 4 && !Q_stricmp( pack->pakBasename + strlen( pack->pakBasename ) - 4, ".pk3" ) ) {
-@@ -1730,6 +1762,30 @@ static pack_t *FS_LoadZipFile(const char
+@@ -1730,6 +1760,30 @@ static pack_t *FS_LoadZipFile(const char *zipfile, con
if (err != UNZ_OK) {
break;
}
@@ -234,7 +232,7 @@
if (file_info.uncompressed_size > 0) {
fs_headerLongs[fs_numHeaderLongs++] = LittleLong(file_info.crc);
}
-@@ -1784,7 +1840,7 @@ qboolean FS_CompareZipChecksum(const cha
+@@ -1784,7 +1838,7 @@ qboolean FS_CompareZipChecksum(const char *zipfile)
pack_t *thepak;
int index, checksum;
@@ -243,7 +241,7 @@
if(!thepak)
return qfalse;
-@@ -2569,10 +2625,8 @@ void FS_AddGameDirectory( const char *pa
+@@ -2569,10 +2623,8 @@ void FS_AddGameDirectory( const char *path, const char
for ( i = 0 ; i < numfiles ; i++ ) {
pakfile = FS_BuildOSPath( path, dir, pakfiles[i] );
@@ -255,7 +253,7 @@
fs_packFiles += pak->numfiles;
-@@ -2854,11 +2908,14 @@ static void FS_Startup( const char *game
+@@ -2854,11 +2906,14 @@ static void FS_Startup( const char *gameName )
Com_Printf( "----- FS_Startup -----\n" );
@@ -270,7 +268,7 @@
homePath = Sys_DefaultHomePath();
if (!homePath || !homePath[0]) {
homePath = fs_basepath->string;
-@@ -2878,6 +2935,11 @@ static void FS_Startup( const char *game
+@@ -2878,6 +2933,11 @@ static void FS_Startup( const char *gameName )
if (fs_apppath->string[0])
FS_AddGameDirectory(fs_apppath->string, gameName);
#endif
diff --git a/games/openarena/files/patch-code_qcommon_qcommon.h b/games/openarena/files/patch-code_qcommon_qcommon.h
index 80bca4095d6a..56b32faea469 100644
--- a/games/openarena/files/patch-code_qcommon_qcommon.h
+++ b/games/openarena/files/patch-code_qcommon_qcommon.h
@@ -13,7 +13,7 @@
// referenced flags
// these are in loop specific order so don't change the order
#define FS_GENERAL_REF 0x01
-@@ -627,7 +633,7 @@ fileHandle_t FS_FOpenFileAppend( const c
+@@ -627,7 +633,7 @@ int FS_SV_FOpenFileRead( const char *filename, fileHa
fileHandle_t FS_SV_FOpenFileWrite( const char *filename );
int FS_SV_FOpenFileRead( const char *filename, fileHandle_t *fp );
@@ -22,13 +22,13 @@
int FS_FOpenFileRead( const char *qpath, fileHandle_t *file, qboolean uniqueFILE );
// if uniqueFILE is true, then a new FILE will be fopened even if the file
// is found in an already open pak file. If uniqueFILE is false, you must call
-@@ -1099,6 +1105,9 @@ char *Sys_DefaultInstallPath(void);
+@@ -1098,6 +1104,9 @@ char *Sys_DefaultAppPath(void);
+ #ifdef MACOS_X
char *Sys_DefaultAppPath(void);
#endif
-
++
+void Sys_SetDefaultLibPath(const char *path);
+char *Sys_DefaultLibPath(void);
-+
+
void Sys_SetDefaultHomePath(const char *path);
char *Sys_DefaultHomePath(void);
- const char *Sys_TempPath(void);