Просмотр исходного кода

cmGeneratedFileStream: Use random temporary file extension by default

Avoid collisions with project-specified files named with `.tmp`.

Issue: #20873
Brad King 5 лет назад
Родитель
Сommit
eaa420e99c
1 измененных файлов с 3 добавлено и 1 удалено
  1. 3 1
      Source/cmGeneratedFileStream.cxx

+ 3 - 1
Source/cmGeneratedFileStream.cxx

@@ -129,7 +129,9 @@ void cmGeneratedFileStreamBase::Open(std::string const& name)
   if (!this->TempExt.empty()) {
     this->TempName += this->TempExt;
   } else {
-    this->TempName += "tmp";
+    char buf[64];
+    sprintf(buf, "tmp%05x", cmSystemTools::RandomSeed() & 0xFFFFF);
+    this->TempName += buf;
   }
 
   // Make sure the temporary file that will be used is not present.