summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu.herrb@laas.fr>2011-10-17 22:27:35 +0200
committerJulien Cristau <jcristau@debian.org>2011-10-29 19:09:07 +0200
commite9ffc3a5f9414cdc4c3e5b8bf25fefe4f01cf725 (patch)
tree2fae4c9c7ac5b368675f86b2429c6aa9a6053332
parent1fec281b0daa21f39e98855872e35fbaeb5ec0bb (diff)
downloadxserver-server-1.9-branch.tar.gz
Fix CVE-2011-4029: File permission change vulnerability.server-1.9-branch
Use fchmod() to change permissions of the lock file instead of chmod(), thus avoid the race that can be exploited to set a symbolic link to any file or directory in the system. Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> (cherry picked from commit b67581cf825940fdf52bf2e0af4330e695d724a4)
-rw-r--r--os/utils.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/os/utils.c b/os/utils.c
index 575998ff9..de6476a8b 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -306,7 +306,7 @@ LockServer(void)
FatalError("Could not create lock file in %s\n", tmp);
(void) sprintf(pid_str, "%10ld\n", (long)getpid());
(void) write(lfd, pid_str, 11);
- (void) chmod(tmp, 0444);
+ (void) fchmod(lfd, 0444);
(void) close(lfd);
/*