diff options
-rw-r--r-- | fetchmail.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/fetchmail.c b/fetchmail.c index 7f78eae6..506c11e7 100644 --- a/fetchmail.c +++ b/fetchmail.c @@ -645,19 +645,13 @@ static int load_params(int argc, char **argv, int optind) exit(PS_SYNTAX); } - /* make sure delivery will default to a real local user */ + /* if `user' doesn't name a real local user, try to run as root */ if ((pw = getpwnam(user)) == (struct passwd *)NULL) - { - fprintf(stderr, - "fetchmail: can't set up default delivery to %s\n", user); - exit(PS_SYNTAX); /* has to be from bad rc file */ - } - else - { + ctl->uid = 0; + else ctl->uid = pw->pw_uid; /* for local delivery via MDA */ - if (!ctl->localnames) /* for local delivery via SMTP */ - save_str_pair(&ctl->localnames, user, NULL); - } + if (!ctl->localnames) /* for local delivery via SMTP */ + save_str_pair(&ctl->localnames, user, NULL); #if !defined(HAVE_GETHOSTBYNAME) || !defined(HAVE_RES_SEARCH) /* can't handle multidrop mailboxes unless we can do DNS lookups */ |