ソースを参照

Merge topic 'update-kwsys'

c89c49d67b Merge branch 'upstream-KWSys' into update-kwsys
5c18d48fda KWSys 2024-09-19 (2d72c140)

Acked-by: Kitware Robot <[email protected]>
Merge-request: !9833
Brad King 1 年間 前
コミット
ac8738c077
1 ファイル変更5 行追加1 行削除
  1. 5 1
      Source/kwsys/SystemTools.cxx

+ 5 - 1
Source/kwsys/SystemTools.cxx

@@ -2597,8 +2597,12 @@ SystemTools::CopyStatus SystemTools::CloneFileContent(
 
   // NOTE: we cannot use `clonefile` as the {a,c,m}time for the file needs to
   // be updated by `copy_file_if_different` and `copy_file`.
+  // These flags are meant to be COPYFILE_METADATA | COPYFILE_CLONE, but CLONE
+  // forces COPYFILE_NOFOLLOW_SRC and that violates the invariant that this
+  // should result in a file.
   if (copyfile(source.c_str(), destination.c_str(), nullptr,
-               COPYFILE_METADATA | COPYFILE_CLONE) < 0) {
+               COPYFILE_METADATA | COPYFILE_EXCL | COPYFILE_STAT |
+                 COPYFILE_XATTR | COPYFILE_DATA) < 0) {
     return CopyStatus{ Status::POSIX_errno(), CopyStatus::NoPath };
   }
 #  if KWSYS_CXX_HAS_UTIMENSAT