[llvm] ee8a5e4 - Fix chrome os failure after 021de7cf80268091cf13485a538b611b37d0b33e.

Alexey Lapshin via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 12 05:32:10 PDT 2021


Author: Alexey Lapshin
Date: 2021-04-12T15:28:32+03:00
New Revision: ee8a5e4bc2c986b8e6c07e81fb58dc1e5a5c2d17

URL: https://github.com/llvm/llvm-project/commit/ee8a5e4bc2c986b8e6c07e81fb58dc1e5a5c2d17
DIFF: https://github.com/llvm/llvm-project/commit/ee8a5e4bc2c986b8e6c07e81fb58dc1e5a5c2d17.diff

LOG: Fix chrome os failure after 021de7cf80268091cf13485a538b611b37d0b33e.

chrome os build failed after D98511:
https://bugs.chromium.org/p/chromium/issues/detail?id=1197970

This patch fixes permission issue appeared after D98511.

Added: 
    

Modified: 
    llvm/tools/llvm-objcopy/llvm-objcopy.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
index 6c6b26b3c32f9..d3cc94782bedd 100644
--- a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
+++ b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
@@ -259,6 +259,12 @@ static Error restoreStatOnFile(StringRef Filename,
   if (std::error_code EC = sys::fs::status(FD, OStat))
     return createFileError(Filename, EC);
   if (OStat.type() == sys::fs::file_type::regular_file) {
+#ifndef _WIN32
+    // Keep ownership if llvm-objcopy is called under root.
+    if (Config.InputFilename == Config.OutputFilename && OStat.getUser() == 0)
+      sys::fs::changeFileOwnership(FD, Stat.getUser(), Stat.getGroup());
+#endif
+
     sys::fs::perms Perm = Stat.permissions();
     if (Config.InputFilename != Config.OutputFilename)
       Perm = static_cast<sys::fs::perms>(Perm & ~sys::fs::getUmask() & ~06000);
@@ -268,12 +274,6 @@ static Error restoreStatOnFile(StringRef Filename,
     if (auto EC = sys::fs::setPermissions(FD, Perm))
 #endif
       return createFileError(Filename, EC);
-
-#ifndef _WIN32
-    // Keep ownership if llvm-objcopy is called under root.
-    if (Config.InputFilename == Config.OutputFilename && OStat.getUser() == 0)
-      sys::fs::changeFileOwnership(FD, Stat.getUser(), Stat.getGroup());
-#endif
   }
 
   if (auto EC = sys::Process::SafelyCloseFileDescriptor(FD))


        


More information about the llvm-commits mailing list