瀏覽代碼

BUG: make sure null terminator is in the right place for putenv static char array

Bill Hoffman 22 年之前
父節點
當前提交
c336a9b1ac
共有 3 個文件被更改,包括 5 次插入7 次删除
  1. 1 3
      Source/cmCTest.cxx
  2. 2 2
      Source/cmGlobalGenerator.cxx
  3. 2 2
      Source/cmake.cxx

+ 1 - 3
Source/cmCTest.cxx

@@ -2820,7 +2820,6 @@ int cmCTest::RunMakeCommand(const char* command, std::string* output,
 
 int cmCTest::RunTest(std::vector<const char*> argv, std::string* output, int *retVal)
 {
-#if 0
   if(cmSystemTools::SameFile(argv[0], m_CTestSelf.c_str()))
     {
     cmCTest inst;
@@ -2840,7 +2839,6 @@ int cmCTest::RunTest(std::vector<const char*> argv, std::string* output, int *re
       }
     return cmsysProcess_State_Exited;
     }
-#endif  
   std::vector<char> tempOutput;
   if ( output )
     {
@@ -3000,7 +2998,7 @@ int cmCTest::RunConfigurationScript()
         size = 4999;
         }
       strncpy(ctestEnvStatic[i], envArgs[i].c_str(), size);
-      ctestEnvStatic[i][4999] = 0;
+      ctestEnvStatic[i][size] = 0;
       putenv(ctestEnvStatic[i]);
       }
     }

+ 2 - 2
Source/cmGlobalGenerator.cxx

@@ -150,7 +150,7 @@ void cmGlobalGenerator::EnableLanguage(const char* lang,
         }
       strncpy(envCC, env.c_str(), size);
       envCC[size] = 0;
-      putenv(envCC);
+      putenv(envCC); 
       }
     } 
   
@@ -178,7 +178,7 @@ void cmGlobalGenerator::EnableLanguage(const char* lang,
         size = 4999;
         }
       strncpy(envCXX, env.c_str(), size);
-      envCXX[4999] = 0;
+      envCXX[size] = 0;
       putenv(envCXX);
       }
     }

+ 2 - 2
Source/cmake.cxx

@@ -877,7 +877,7 @@ void cmake::SetGlobalGenerator(cmGlobalGenerator *gg)
       size = 4999;
       }
     strncpy(envCC, env.c_str(), size);
-    envCC[4999] = 0;
+    envCC[size] = 0;
     putenv(envCC); 
     
     // Restore CXX
@@ -893,7 +893,7 @@ void cmake::SetGlobalGenerator(cmGlobalGenerator *gg)
       size = 4999;
       }
     strncpy(envCXX, env.c_str(), size);
-    envCXX[4999] = 0;
+    envCXX[size] = 0;
     putenv(envCXX);
     }