Selaa lähdekoodia

Fix buffer overflow

Ben Payne 10 vuotta sitten
vanhempi
commit
dd297d4dc0
1 muutettua tiedostoa jossa 14 lisäystä ja 12 poistoa
  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__ );
 
-   char moduleName[256];
+   enum { moduleNameSize = 256 };
+   char moduleName[moduleNameSize];
 #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
-   GetModuleFileNameA(NULL, moduleName, sizeof(moduleName));
+   GetModuleFileNameA(NULL, moduleName, moduleNameSize);
 #endif
    argv.push_back(moduleName);
 
@@ -394,15 +395,16 @@ S32 torque_winmain( HINSTANCE hInstance, HINSTANCE, LPSTR lpszCmdLine, S32)
 {
 	Vector<char *> argv( __FILE__, __LINE__ );
 
-	char moduleName[256];
+   enum { moduleNameSize = 256 };
+   char moduleName[moduleNameSize];
 #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
-	GetModuleFileNameA(NULL, moduleName, sizeof(moduleName));
+   GetModuleFileNameA(NULL, moduleName, moduleNameSize);
 #endif
 	argv.push_back(moduleName);