Skip to content

Commit

Permalink
fix some undefined/unspecified behaviours in multiplayer games( may h…
Browse files Browse the repository at this point in the history
…elp with #299 )
  • Loading branch information
nillerusr committed Oct 7, 2023
1 parent 2636f1a commit 57f6bf6
Show file tree
Hide file tree
Showing 9 changed files with 17 additions and 16 deletions.
2 changes: 1 addition & 1 deletion engine/NetworkStringTableItem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ bool CNetworkStringTableItem::SetUserData( int tick, int length, const void *use

if ( length > 0 )
{
m_pUserData = new unsigned char[ length ];
m_pUserData = new unsigned char[ALIGN_VALUE( length, 4 )];
Q_memcpy( m_pUserData, userData, length );
}
else
Expand Down
2 changes: 1 addition & 1 deletion engine/downloadthread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -921,7 +921,7 @@ void DownloadThread( void *voidPtr )
// Delete rc.data, which was allocated in this thread
if ( rc.data != NULL )
{
delete[] rc.data;
free(rc.data);
rc.data = NULL;
}

Expand Down
2 changes: 1 addition & 1 deletion engine/pure_server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ bool CPureServerWhitelist::LoadCommandsFromKeyValues( KeyValues *kv )
else
Warning( "Unknown modifier in whitelist file: %s.\n", mods[i] );
}
mods.PurgeAndDeleteElements();
mods.PurgeAndDeleteElementsArray();
if (
( bFromTrustedSource && ( bAllowFromDisk || bCheckCRC || bAny ) )
|| ( bAny && bCheckCRC ) )
Expand Down
2 changes: 1 addition & 1 deletion engine/sv_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1227,7 +1227,7 @@ void SV_DetermineMulticastRecipients( bool usepas, const Vector& origin, CBitVec
serverGameClients->ClientEarPosition( pClient->edict, &vecEarPosition );

int iBitNumber = CM_LeafCluster( CM_PointLeafnum( vecEarPosition ) );
if ( !(pMask[iBitNumber>>3] & (1<<(iBitNumber&7)) ) )
if ( iBitNumber < 0 || !(pMask[iBitNumber>>3] & (1<<(iBitNumber&7)) ) )
continue;

playerbits.Set( i );
Expand Down
2 changes: 1 addition & 1 deletion engine/vengineserver_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1842,7 +1842,7 @@ void CVEngineServer::PlaybackTempEntity( IRecipientFilter& filter, float delay,

newEvent->bits = buffer.GetNumBitsWritten();
int size = Bits2Bytes( buffer.GetNumBitsWritten() );
newEvent->pData = new byte[size];
newEvent->pData = new byte[ALIGN_VALUE(size,4)];
Q_memcpy( newEvent->pData, data, size );

// add to list
Expand Down
13 changes: 7 additions & 6 deletions game/client/game_controls/teammenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ void CTeamMenu::ApplySchemeSettings(IScheme *pScheme)

if ( *m_szMapName )
{
LoadMapPage( m_szMapName ); // reload the map description to pick up the color
LoadMapPage( NULL ); // reload the map description to pick up the color
}
}

Expand Down Expand Up @@ -185,22 +185,23 @@ void CTeamMenu::Update()
void CTeamMenu::LoadMapPage( const char *mapName )
{
// Save off the map name so we can re-load the page in ApplySchemeSettings().
Q_strncpy( m_szMapName, mapName, strlen( mapName ) + 1 );

if( mapName )
Q_strncpy( m_szMapName, mapName, strlen( mapName ) + 1 );

char mapRES[ MAX_PATH ];

char uilanguage[ 64 ];
uilanguage[0] = 0;
engine->GetUILanguage( uilanguage, sizeof( uilanguage ) );

Q_snprintf( mapRES, sizeof( mapRES ), "resource/maphtml/%s_%s.html", mapName, uilanguage );
Q_snprintf( mapRES, sizeof( mapRES ), "resource/maphtml/%s_%s.html", m_szMapName, uilanguage );

bool bFoundHTML = false;

if ( !g_pFullFileSystem->FileExists( mapRES ) )
{
// try english
Q_snprintf( mapRES, sizeof( mapRES ), "resource/maphtml/%s_english.html", mapName );
Q_snprintf( mapRES, sizeof( mapRES ), "resource/maphtml/%s_english.html", m_szMapName );
}
else
{
Expand Down Expand Up @@ -240,7 +241,7 @@ void CTeamMenu::LoadMapPage( const char *mapName )
#endif
}

Q_snprintf( mapRES, sizeof( mapRES ), "maps/%s.txt", mapName);
Q_snprintf( mapRES, sizeof( mapRES ), "maps/%s.txt", m_szMapName);

// if no map specific description exists, load default text
if( !g_pFullFileSystem->FileExists( mapRES ) )
Expand Down
6 changes: 3 additions & 3 deletions public/mathlib/ssemath.h
Original file line number Diff line number Diff line change
Expand Up @@ -1787,14 +1787,14 @@ FORCEINLINE fltx4 LoadAlignedSIMD( const VectorAligned & pSIMD )
return SetWToZeroSIMD( LoadAlignedSIMD(pSIMD.Base()) );
}

#ifdef __SANITIZE_ADDRESS__
static __attribute__((no_sanitize("address"))) fltx4 LoadUnalignedSIMD( const void *pSIMD )
#ifdef USING_ASAN
static NO_ASAN fltx4 LoadUnalignedSIMD( const void *pSIMD )
{
return _mm_loadu_ps( reinterpret_cast<const float *>( pSIMD ) );

}

static __attribute__((no_sanitize("address"))) fltx4 LoadUnaligned3SIMD( const void *pSIMD )
static NO_ASAN fltx4 LoadUnaligned3SIMD( const void *pSIMD )
{
return _mm_loadu_ps( reinterpret_cast<const float *>( pSIMD ) );
}
Expand Down
2 changes: 1 addition & 1 deletion public/soundflags.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ enum
// Don't change this without consulting Kelly or Wedge (sjb).
#define ATTN_GUNFIRE 0.27f

enum soundlevel_t
enum soundlevel_t : int
{
SNDLVL_NONE = 0,

Expand Down
2 changes: 1 addition & 1 deletion togl/linuxwin/dx9asmtogl2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1010,7 +1010,7 @@ CUtlString D3DToGL::FixGLSLSwizzle( const char *pDestRegisterName, const char *p
{
bool bAbsWrapper = false; // Parameter wrapped in an abs()
bool bAbsNegative = false; // -abs()
char szSrcRegister[128];
static char szSrcRegister[128];
V_strncpy( szSrcRegister, pSrcRegisterName, sizeof(szSrcRegister) );

// Check for abs() or -abs() wrapper and strip it off during the fixup
Expand Down

0 comments on commit 57f6bf6

Please sign in to comment.