瀏覽代碼

cmGeneratedFileStream: Do not remove empty path

If `Close()` is called when a file was never opened, we have no
temporary file path.  Do not try to remove it.  Some implementations of
`unlink()` crash on an empty path (though the documented behavior is to
fail with `ENOENT`).

Fixes: #23414
Brad King 3 年之前
父節點
當前提交
71ded12a75
共有 1 個文件被更改,包括 3 次插入1 次删除
  1. 3 1
      Source/cmGeneratedFileStream.cxx

+ 3 - 1
Source/cmGeneratedFileStream.cxx

@@ -180,7 +180,9 @@ bool cmGeneratedFileStreamBase::Close()
   // Else, the destination was not replaced.
   //
   // Always delete the temporary file. We never want it to stay around.
-  cmSystemTools::RemoveFile(this->TempName);
+  if (!this->TempName.empty()) {
+    cmSystemTools::RemoveFile(this->TempName);
+  }
 
   return replaced;
 }