From 682fb48c137b687477008b68863c2a0b73ed47d1 Mon Sep 17 00:00:00 2001
From: Fabio Berton <fabio.berton@ossystems.com.br>
Date: Fri, 9 Sep 2016 16:00:42 -0300
Subject: [PATCH] handle read-only files

Patch from:
https://github.com/darealshinji/patchelf/commit/40e66392bc4b96e9b4eda496827d26348a503509

Upstream-Status: Denied [https://github.com/NixOS/patchelf/pull/89]

Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>

---
 src/patchelf.cc | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

Index: git/src/patchelf.cc
===================================================================
--- git.orig/src/patchelf.cc
+++ git/src/patchelf.cc
@@ -534,9 +534,19 @@ void ElfFile<ElfFileParamNames>::sortShd
 
 static void writeFile(const std::string & fileName, const FileContents & contents)
 {
+    struct stat st;
+    int fd;
+
     debug("writing %s\n", fileName.c_str());
 
-    int fd = open(fileName.c_str(), O_CREAT | O_TRUNC | O_WRONLY, 0777);
+    if (stat(fileName.c_str(), &st) != 0)
+        error("stat");
+
+    if (chmod(fileName.c_str(), 0600) != 0)
+        error("chmod");
+
+    fd = open(fileName.c_str(), O_CREAT | O_TRUNC | O_WRONLY, 0777);
+
     if (fd == -1)
         error("open");
 
@@ -551,8 +561,6 @@ static void writeFile(const std::string
         bytesWritten += portion;
     }
 
-    if (close(fd) >= 0)
-        return;
     /*
      * Just ignore EINTR; a retry loop is the wrong thing to do.
      *
@@ -561,9 +569,11 @@ static void writeFile(const std::string
      * http://utcc.utoronto.ca/~cks/space/blog/unix/CloseEINTR
      * https://sites.google.com/site/michaelsafyan/software-engineering/checkforeintrwheninvokingclosethinkagain
      */
-    if (errno == EINTR)
-        return;
-    error("close");
+    if ((close(fd) < 0) && errno != EINTR)
+        error("close");
+
+    if (chmod(fileName.c_str(), st.st_mode) != 0)
+        error("chmod");
 }
 
 
