mirror of
https://github.com/YGGverse/xash3d-fwgs.git
synced 2025-01-20 03:50:08 +00:00
Various: Fixed obscure crashes on Mac
There were a couple of out-of-range/post-free accesses going on, which caused the Mac build to crash when optimisations were turned on.
This commit is contained in:
parent
661b53d0b3
commit
37255354d4
@ -275,6 +275,7 @@ void HPAK_AddLump( qboolean bUseQueue, const char *name, resource_t *pResource,
|
|||||||
Con_DPrintf( S_ERROR "HPAK_AddLump: %s does not have a valid header.\n", srcname );
|
Con_DPrintf( S_ERROR "HPAK_AddLump: %s does not have a valid header.\n", srcname );
|
||||||
FS_Close( file_src );
|
FS_Close( file_src );
|
||||||
FS_Close( file_dst );
|
FS_Close( file_dst );
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
length = FS_FileLength( file_src );
|
length = FS_FileLength( file_src );
|
||||||
@ -295,12 +296,12 @@ void HPAK_AddLump( qboolean bUseQueue, const char *name, resource_t *pResource,
|
|||||||
// load the data
|
// load the data
|
||||||
srcpak.entries = Z_Malloc( sizeof( hpak_lump_t ) * srcpak.count );
|
srcpak.entries = Z_Malloc( sizeof( hpak_lump_t ) * srcpak.count );
|
||||||
FS_Read( file_src, srcpak.entries, sizeof( hpak_lump_t ) * srcpak.count );
|
FS_Read( file_src, srcpak.entries, sizeof( hpak_lump_t ) * srcpak.count );
|
||||||
FS_Close( file_src );
|
|
||||||
|
|
||||||
// check if already exists
|
// check if already exists
|
||||||
if( HPAK_FindResource( &srcpak, pResource->rgucMD5_hash, NULL ))
|
if( HPAK_FindResource( &srcpak, pResource->rgucMD5_hash, NULL ))
|
||||||
{
|
{
|
||||||
Z_Free( srcpak.entries );
|
Z_Free( srcpak.entries );
|
||||||
|
FS_Close( file_src );
|
||||||
FS_Close( file_dst );
|
FS_Close( file_dst );
|
||||||
FS_Delete( dstname );
|
FS_Delete( dstname );
|
||||||
return;
|
return;
|
||||||
@ -350,6 +351,8 @@ void HPAK_AddLump( qboolean bUseQueue, const char *name, resource_t *pResource,
|
|||||||
|
|
||||||
FS_Seek( file_dst, 0, SEEK_SET );
|
FS_Seek( file_dst, 0, SEEK_SET );
|
||||||
FS_Write( file_dst, &hash_pack_header, sizeof( hpak_header_t ));
|
FS_Write( file_dst, &hash_pack_header, sizeof( hpak_header_t ));
|
||||||
|
|
||||||
|
FS_Close( file_src );
|
||||||
FS_Close( file_dst );
|
FS_Close( file_dst );
|
||||||
|
|
||||||
FS_Delete( srcname );
|
FS_Delete( srcname );
|
||||||
|
@ -252,7 +252,7 @@ Loads a model into the cache
|
|||||||
model_t *Mod_LoadModel( model_t *mod, qboolean crash )
|
model_t *Mod_LoadModel( model_t *mod, qboolean crash )
|
||||||
{
|
{
|
||||||
char tempname[MAX_QPATH];
|
char tempname[MAX_QPATH];
|
||||||
long length = 0;
|
fs_offset_t length = 0;
|
||||||
qboolean loaded;
|
qboolean loaded;
|
||||||
byte *buf;
|
byte *buf;
|
||||||
model_info_t *p;
|
model_info_t *p;
|
||||||
|
@ -29,7 +29,7 @@ def build(bld):
|
|||||||
bld(
|
bld(
|
||||||
source = source,
|
source = source,
|
||||||
target = 'xash3d', # hl.exe
|
target = 'xash3d', # hl.exe
|
||||||
features = 'c cprogram',
|
features = 'c cxx cxxprogram',
|
||||||
includes = includes,
|
includes = includes,
|
||||||
use = libs,
|
use = libs,
|
||||||
install_path = bld.env.BINDIR,
|
install_path = bld.env.BINDIR,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user