From 66900c733ccef6a01b8fc6d7ca9f5f9adac7656a Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" <esr@thyrsus.com> Date: Wed, 7 Apr 1999 22:57:47 +0000 Subject: First round of post-5.0.0 buglets. svn path=/trunk/; revision=2430 --- NEWS | 7 +++++++ env.c | 31 +++++++++++++++---------------- fetchmail.man | 8 ++++---- netrc.c | 6 +----- 4 files changed, 27 insertions(+), 25 deletions(-) diff --git a/NEWS b/NEWS index b6a2cef6..65275856 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,13 @@ Release Notes: +fetchmail-5.0.1 (): +* Try to discover user/home via getpwuid(getuid()) before using LOGNAME/HOME. +* Mike Pearce's fix for buggy DEFAULT handling in .netrc. + +There are 255 people on fetchmail-friends and 369 on fetchmail-announce. + +------------------------------------------------------------------------------ fetchmail-5.0.0 (Mon Apr 5 11:00:24 EDT 1999): * Update for fetchsetup from Kent Robotti. * Eliminate a realloc error in fetchmail -v -v progress message generation. diff --git a/env.c b/env.c index ad915263..dd6755d4 100644 --- a/env.c +++ b/env.c @@ -40,23 +40,22 @@ void envquery(int argc, char **argv) else program_name = argv[0]; - if ((user = getenv("USER")) == (char *)NULL) - user = getenv("LOGNAME"); - - if ((user == (char *)NULL) || (home = getenv("HOME")) == (char *)NULL) + if ((pw = getpwuid(getuid())) != NULL) { - if ((pw = getpwuid(getuid())) != NULL) - { - user = pw->pw_name; - home = pw->pw_dir; - } - else - { - fprintf(stderr, - _("%s: can't find your name and home directory!\n"), - program_name); - exit(PS_UNDEFINED); - } + user = pw->pw_name; + home = pw->pw_dir; + } + else if ((home = getenv("HOME"))) + { + if ((user = getenv("LOGNAME")) == (char *)NULL || user[0] == '\0') + user = getenv("USER"); + } + else + { + fprintf(stderr, + _("%s: can't find your name and home directory!\n"), + program_name); + exit(PS_UNDEFINED); } #define RCFILE_NAME ".fetchmailrc" diff --git a/fetchmail.man b/fetchmail.man index 6cd6475a..e04a7959 100644 --- a/fetchmail.man +++ b/fetchmail.man @@ -1755,11 +1755,11 @@ lock file to help prevent concurrent runs (root mode, Linux systems). lock file to help prevent concurrent runs (root mode, systems without /var/run). .SH ENVIRONMENT -For correct initialization, +For correct initialization, .I fetchmail -requires either that both the USER and HOME environment variables are -correctly set, or that \fBgetpwuid\fR(3) be able to retrieve a password -entry from your user ID. +requires either that \fBgetpwuid\fR(3) be able to retrieve a password +entry from your user ID, or that either the LOGNAME or USER and the +HOME environment variables are correctly set. .SH SIGNALS If a diff --git a/netrc.c b/netrc.c index 7c500702..e275c9d3 100644 --- a/netrc.c +++ b/netrc.c @@ -298,11 +298,7 @@ search_netrc (list, host, account) /* Look for the HOST in LIST. */ while (list) { - if (!list->host) - /* We hit the default entry. */ - break; - - else if (!strcmp(list->host, host)) + if (list->host && !strcmp(list->host, host)) if (!list->account || !strcmp(list->account, account)) /* We found a matching entry. */ break; -- cgit v1.2.3