summaryrefslogtreecommitdiffstats
path: root/src/Daemon
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-12-14 15:30:48 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2009-12-14 15:30:48 +0100
commit452013e2097aa985bf8c3f8296d00d189401eea3 (patch)
tree8e7679bd14ecf15803bae6b6ab4fd9f687ea874a /src/Daemon
parentf1d1a096c389b076007cda87c6e7db3172ed98db (diff)
downloadabrt-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')
-rw-r--r--src/Daemon/Daemon.cpp9
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;
}