From 9f1d960f6a6d77218adc7c730e5b44db0f2bb568 Mon Sep 17 00:00:00 2001 From: GAMMACASE <31375974+GAMMACASE@users.noreply.github.com> Date: Fri, 4 Oct 2024 03:25:10 +0300 Subject: [PATCH] Improve CUtlStringToken string constructor Prevent hashing attempts on emtpy or null strings --- public/tier1/utlstringtoken.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/public/tier1/utlstringtoken.h b/public/tier1/utlstringtoken.h index 628198ee..b06240b1 100644 --- a/public/tier1/utlstringtoken.h +++ b/public/tier1/utlstringtoken.h @@ -31,11 +31,15 @@ class CUtlStringToken { public: FORCEINLINE CUtlStringToken( uint32 nHashCode = 0 ) : m_nHashCode( nHashCode ) {} - FORCEINLINE CUtlStringToken( const char *str ) : m_nHashCode( MurmurHash2LowerCase( str, STRINGTOKEN_MURMURHASH_SEED ) ) + FORCEINLINE CUtlStringToken( const char *str ) : m_nHashCode( 0 ) { - if(g_bUpdateStringTokenDatabase) + if(str && *str) { - RegisterStringToken( m_nHashCode, str, 0, true ); + m_nHashCode = MurmurHash2LowerCase( str, STRINGTOKEN_MURMURHASH_SEED ); + if(g_bUpdateStringTokenDatabase) + { + RegisterStringToken( m_nHashCode, str, 0, true ); + } } }