diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-12-14 15:30:48 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-12-14 15:30:48 +0100 |
commit | 452013e2097aa985bf8c3f8296d00d189401eea3 (patch) | |
tree | 8e7679bd14ecf15803bae6b6ab4fd9f687ea874a /src/Daemon/Daemon.cpp | |
parent | f1d1a096c389b076007cda87c6e7db3172ed98db (diff) | |
download | abrt-452013e2097aa985bf8c3f8296d00d189401eea3.tar.gz abrt-452013e2097aa985bf8c3f8296d00d189401eea3.tar.xz abrt-452013e2097aa985bf8c3f8296d00d189401eea3.zip |
more "obviously correct" code for secure opening of /dev/null
Old code is not broken, new one merely looks "more obviously correct".
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'src/Daemon/Daemon.cpp')
-rw-r--r-- | src/Daemon/Daemon.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/Daemon/Daemon.cpp b/src/Daemon/Daemon.cpp index 6f98966c..153363d5 100644 --- a/src/Daemon/Daemon.cpp +++ b/src/Daemon/Daemon.cpp @@ -623,14 +623,11 @@ static void run_main_loop(GMainLoop* loop) static void start_syslog_logging() { /* Open stdin to /dev/null */ - close(STDIN_FILENO); - xopen("/dev/null", O_RDWR); + xmove_fd(xopen("/dev/null", O_RDWR), STDIN_FILENO); /* We must not leave fds 0,1,2 closed. * Otherwise fprintf(stderr) dumps messages into random fds, etc. */ - close(STDOUT_FILENO); - close(STDERR_FILENO); - xdup(0); - xdup(0); + xdup2(STDIN_FILENO, STDOUT_FILENO); + xdup2(STDIN_FILENO, STDERR_FILENO); openlog("abrtd", 0, LOG_DAEMON); logmode = LOGMODE_SYSLOG; } |