summaryrefslogtreecommitdiffstats
path: root/patches/logrotate-3.9.1/0004-chown-484762.patch
blob: 925218270fe935d05754c8681c01f0a8b62f3c31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
From: unknown author <unknown.author@example.com>
Date: Thu, 11 Jun 2015 15:35:31 +0200
Subject: [PATCH] chown-484762

===================================================================
---
 logrotate.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/logrotate.c b/logrotate.c
index 8ffcff6f6ac0..d609d7acf012 100644
--- a/logrotate.c
+++ b/logrotate.c
@@ -381,8 +381,12 @@ int createOutputFile(char *fileName, int flags, struct stat *sb, acl_type acl, i
     if (fchmod(fd, (S_IRUSR | S_IWUSR) & sb->st_mode)) {
 	message(MESS_ERROR, "error setting mode of %s: %s\n",
 		fileName, strerror(errno));
-	close(fd);
-	return -1;
+	if (geteuid() == 0) {
+		/* If run as non-root, we may not be able to duplicate
+		   the ownership of the file. Warn but don't fail. */
+		close(fd);
+		return -1;
+	}
     }
 
 	if (fstat(fd, &sb_create)) {