Explorar o código

Fix buffer overflow

Ben Payne %!s(int64=10) %!d(string=hai) anos
pai
achega
dd297d4dc0
Modificáronse 1 ficheiros con 14 adicións e 12 borrados
  1. 14 12
      Engine/source/platformWin32/winWindow.cpp

+ 14 - 12
Engine/source/platformWin32/winWindow.cpp

@@ -317,15 +317,16 @@ S32 WINAPI WinMain( HINSTANCE hInstance, HINSTANCE, LPSTR lpszCmdLine, S32)
 {
 {
    Vector<char *> argv( __FILE__, __LINE__ );
    Vector<char *> argv( __FILE__, __LINE__ );
 
 
-   char moduleName[256];
+   enum { moduleNameSize = 256 };
+   char moduleName[moduleNameSize];
 #ifdef TORQUE_UNICODE
 #ifdef TORQUE_UNICODE
    {
    {
-      TCHAR buf[ 256 ];
-      GetModuleFileNameW( NULL, buf, sizeof( buf ) );
-      convertUTF16toUTF8( buf, moduleName, sizeof( moduleName ) );
+      TCHAR buf[ moduleNameSize ];
+      GetModuleFileNameW( NULL, buf, moduleNameSize );
+      convertUTF16toUTF8( buf, moduleName, moduleNameSize );
    }
    }
 #else
 #else
-   GetModuleFileNameA(NULL, moduleName, sizeof(moduleName));
+   GetModuleFileNameA(NULL, moduleName, moduleNameSize);
 #endif
 #endif
    argv.push_back(moduleName);
    argv.push_back(moduleName);
 
 
@@ -394,15 +395,16 @@ S32 torque_winmain( HINSTANCE hInstance, HINSTANCE, LPSTR lpszCmdLine, S32)
 {
 {
 	Vector<char *> argv( __FILE__, __LINE__ );
 	Vector<char *> argv( __FILE__, __LINE__ );
 
 
-	char moduleName[256];
+   enum { moduleNameSize = 256 };
+   char moduleName[moduleNameSize];
 #ifdef TORQUE_UNICODE
 #ifdef TORQUE_UNICODE
-	{
-		TCHAR buf[ 256 ];
-		GetModuleFileNameW( NULL, buf, sizeof( buf ) );
-		convertUTF16toUTF8( buf, moduleName, sizeof( moduleName ) );
-}
+   {
+      TCHAR buf[ moduleNameSize ];
+      GetModuleFileNameW( NULL, buf, moduleNameSize );
+      convertUTF16toUTF8( buf, moduleName, moduleNameSize );
+   }
 #else
 #else
-	GetModuleFileNameA(NULL, moduleName, sizeof(moduleName));
+   GetModuleFileNameA(NULL, moduleName, moduleNameSize);
 #endif
 #endif
 	argv.push_back(moduleName);
 	argv.push_back(moduleName);