Package: log2mail Version: 0.3.0 Severity: normal Tags: patch
[EMAIL PROTECTED] discovered a bug in log2mail which does not detach from the terminal it was started in. Attached is a fix to solve that problem. -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.17-1-k7 Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15)
Gemeinsame Unterverzeichnisse: log2mail-0.3.0-vanilla/debian und log2mail-0.3.0/debian. diff -u log2mail-0.3.0-vanilla/main.cc log2mail-0.3.0/main.cc --- log2mail-0.3.0-vanilla/main.cc 2004-10-04 22:44:48.000000000 +0200 +++ log2mail-0.3.0/main.cc 2006-09-17 12:08:15.067656500 +0200 @@ -20,6 +20,8 @@ #include <stdarg.h> #include <syslog.h> #include <signal.h> +#include <fcntl.h> +#include <sys/ioctl.h> void usage (char *name) { printf("usage: %s [-f config file] [-l] [-N] [-V] [-v] [-h|?]\n", name); @@ -167,6 +169,17 @@ openlog("log2mail", LOG_PID, LOG_DAEMON); } + + /* detach from terminal */ + int fdtty = open("/dev/tty", O_RDWR, 0); + if (fdtty != -1) { + ioctl(fdtty, (int) TIOCNOTTY, (char *)0); + close(fdtty); + } + + /* close fds */ + for (int i=0;i<3;i++) close(i); + /* install signal handler */ if (SIG_ERR == signal(SIGTERM, sigHandler)) { printlog(LOG_ERR, "signal handler for SIGTERM not installed: %m");