Skip to content

Commit 863cf02

Browse files
committed
Fix crash on windows
1 parent 3b0c90a commit 863cf02

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

engine/common/launcher.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ int __stdcall WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdLine, int n
4949
char **szArgv;
5050
LPWSTR* lpArgv = CommandLineToArgvW(GetCommandLineW(), &szArgc);
5151
int size, i = 0;
52-
szArgv = (char**)malloc(szArgc*sizeof(char*));
52+
szArgv = (char**)сalloc(szArgc + 1,sizeof(char*));
5353
for (; i < szArgc; ++i)
5454
{
5555
size = wcslen(lpArgv[i]) + 1;

engine/common/system.c

+5-1
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,11 @@ qboolean _Sys_GetParmFromCmdLine( char *parm, char *out, size_t size )
489489
if( !argc ) return false;
490490
if( !out ) return false;
491491
if( !host.argv[argc + 1] ) return false;
492-
Q_strncpy( out, host.argv[argc+1], size );
492+
if( argc < 0 || argc >= host.argc ) return false;
493+
if( argc + 1 == host.argc )
494+
Q_strncpy( out, "", size );
495+
else
496+
Q_strncpy( out, host.argv[argc+1], size );
493497

494498
return true;
495499
}

game_launch/xash.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ int __stdcall WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdLine, int
180180
int ret, i;
181181

182182
lpArgv = CommandLineToArgvW( GetCommandLineW(), &szArgc );
183-
szArgv = ( char** )malloc( szArgc * sizeof( char* ));
183+
szArgv = ( char** )сalloc( szArgc + 1, sizeof( char* ));
184184

185185
for( i = 0; i < szArgc; ++i )
186186
{

0 commit comments

Comments
 (0)