Browse Source

cmGeneratedFileStream: Use random temporary file extension by default

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

Issue: #20873
Brad King 5 years ago
parent
commit
eaa420e99c
1 changed files with 3 additions and 1 deletions
  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.