fix undefined behaviours and jpeg crash on non-windows platforms

This commit is contained in:
nillerusr 2023-10-08 07:31:07 +03:00
parent 047f8b1185
commit 5a4d0b7a4d
4 changed files with 10 additions and 4 deletions

View File

@ -65,9 +65,12 @@ extern void longjmp( jmp_buf, int ) __attribute__((noreturn));
#define JPEGLIB_USE_STDIO #define JPEGLIB_USE_STDIO
#if ANDROID #if ANDROID
#include "android/jpeglib/jpeglib.h" #include "android/jpeglib/jpeglib.h"
#else #elif defined WIN32
#include "jpeglib/jpeglib.h" #include "jpeglib/jpeglib.h"
#else
#include <jpeglib.h>
#endif #endif
#undef JPEGLIB_USE_STDIO #undef JPEGLIB_USE_STDIO

View File

@ -4203,7 +4203,7 @@ bool CBaseFileSystem::FindNextFileInVPKOrPakHelper( FindData_t *pFindData )
{ {
V_strncpy( pFindData->findData.cFileName, V_UnqualifiedFileName( pFindData->m_fileMatchesFromVPKOrPak[0] ), sizeof( pFindData->findData.cFileName ) ); V_strncpy( pFindData->findData.cFileName, V_UnqualifiedFileName( pFindData->m_fileMatchesFromVPKOrPak[0] ), sizeof( pFindData->findData.cFileName ) );
pFindData->findData.dwFileAttributes = 0; pFindData->findData.dwFileAttributes = 0;
delete pFindData->m_fileMatchesFromVPKOrPak.Head(); delete[] pFindData->m_fileMatchesFromVPKOrPak.Head();
pFindData->m_fileMatchesFromVPKOrPak.RemoveMultipleFromHead( 1 ); pFindData->m_fileMatchesFromVPKOrPak.RemoveMultipleFromHead( 1 );
return true; return true;

View File

@ -1500,6 +1500,9 @@ void FileOpenDialog::OnOpen()
char pFileName[MAX_PATH]; char pFileName[MAX_PATH];
GetSelectedFileName( pFileName, sizeof( pFileName ) ); GetSelectedFileName( pFileName, sizeof( pFileName ) );
if( !pFileName[0] )
return;
int nLen = Q_strlen( pFileName ); int nLen = Q_strlen( pFileName );
bool bSpecifiedDirectory = ( pFileName[nLen-1] == '/' || pFileName[nLen-1] == '\\' ) && (!IsOSX() || ( IsOSX() && !Q_stristr( pFileName, ".app" ) ) ); bool bSpecifiedDirectory = ( pFileName[nLen-1] == '/' || pFileName[nLen-1] == '\\' ) && (!IsOSX() || ( IsOSX() && !Q_stristr( pFileName, ".app" ) ) );
Q_StripTrailingSlash( pFileName ); Q_StripTrailingSlash( pFileName );

View File

@ -239,9 +239,9 @@ def define_platform(conf):
'_DLL_EXT=.so' '_DLL_EXT=.so'
]) ])
# if conf.env.DEST_OS != 'win32': if conf.env.DEST_OS != 'win32':
conf.define('NO_MEMOVERRIDE_NEW_DELETE', 1)
# conf.define('NO_MALLOC_OVERRIDE', 1) # conf.define('NO_MALLOC_OVERRIDE', 1)
# conf.define('NO_MEMOVERRIDE_NEW_DELETE', 1)
if conf.options.DEBUG_ENGINE: if conf.options.DEBUG_ENGINE:
conf.env.append_unique('DEFINES', [ conf.env.append_unique('DEFINES', [