diff options
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | env.c | 15 |
2 files changed, 17 insertions, 1 deletions
@@ -188,6 +188,9 @@ fetchmail-6.4.0 (not yet released): that quoted-printable-encoded multipart messages can get decoded. (Regression in 5.0.0 on 1999-03-27, as a side effect of a PGP-mimedecode fix attributed to Henrik Storner.) +* FETCHMAILHOME can now safely be a relative path, which will be qualified + through realpath(). Previously, it had to be absolute in daemon mode. + Reported by Alex Andreotti, Debian Bug#941129. ## UPDATED TRANSLATIONS - THANKS TO: * CS: Petr Pisar <petr.pisar@atlas.cz> [Czech] @@ -29,6 +29,7 @@ #if defined(HAVE_SETLOCALE) && defined(ENABLE_NLS) && defined(HAVE_STRFTIME) #include <locale.h> #endif +#include <limits.h> #ifndef HAVE_DECL_GETENV extern char *getenv(const char *); /* needed on sysV68 R3V7.1. */ @@ -115,8 +116,20 @@ void envquery(int argc, char **argv) home = xstrdup(pwp->pw_dir); /* compute fetchmail's home directory */ - if (!(fmhome = getenv("FETCHMAILHOME"))) + fmhome = getenv("FETCHMAILHOME"); + if (NULL == fmhome) { fmhome = home; + } + /* and make it an absolute path, so we + * can optionally chdir("/") later in daemonize() + * without changing behaviour. + * This is to fix Debian Bug#941129 by Alex Andreotti. + */ + { + static char _fmhome_abs[_POSIX_PATH_MAX]; + char *tmp = realpath(fmhome, _fmhome_abs); + if (tmp) fmhome = _fmhome_abs; + } #define RCFILE_NAME "fetchmailrc" /* |