diff options
author | Eric S. Raymond <esr@thyrsus.com> | 1998-05-22 21:39:15 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 1998-05-22 21:39:15 +0000 |
commit | 99f3b480230cdc38b91dec08b361a97cc8c13b8d (patch) | |
tree | 09bcc1fe1e1f9d422605ee1bc6561405abc87250 | |
parent | e97d69be53c031cf2c52d31eb2063c8bc89aa185 (diff) | |
download | fetchmail-99f3b480230cdc38b91dec08b361a97cc8c13b8d.tar.gz fetchmail-99f3b480230cdc38b91dec08b361a97cc8c13b8d.tar.bz2 fetchmail-99f3b480230cdc38b91dec08b361a97cc8c13b8d.zip |
Gunther Leber's patch.
svn path=/trunk/; revision=1796
-rw-r--r-- | fetchmail.c | 2 | ||||
-rw-r--r-- | fetchmail.h | 2 | ||||
-rw-r--r-- | rcfile_y.y | 7 |
3 files changed, 7 insertions, 4 deletions
diff --git a/fetchmail.c b/fetchmail.c index dccf84cf..9d1c3f1e 100644 --- a/fetchmail.c +++ b/fetchmail.c @@ -828,7 +828,7 @@ static int load_params(int argc, char **argv, int optind) } /* initialize UID handling */ - if (!versioninfo && (st = prc_filecheck(idfile)) != 0) + if (!versioninfo && (st = prc_filecheck(idfile, !versioninfo)) != 0) exit(st); #ifdef POP3_ENABLE else diff --git a/fetchmail.h b/fetchmail.h index 6a9c47d1..f45d6741 100644 --- a/fetchmail.h +++ b/fetchmail.h @@ -329,7 +329,7 @@ void write_saved_lists(struct query *, const char *); /* rcfile_y.y */ int prc_parse_file(const char *, const flag); -int prc_filecheck(const char *); +int prc_filecheck(const char *, const flag); /* base64.c */ void to64frombits(unsigned char *, const unsigned char *, int); @@ -319,9 +319,10 @@ void yyerror (const char *s) prc_errflag++; } -int prc_filecheck(pathname) +int prc_filecheck(pathname, securecheck) /* check that a configuration file is secure */ const char *pathname; /* pathname for the configuration file */ +const flag securecheck; { #ifndef __EMX__ struct stat statbuf; @@ -345,6 +346,8 @@ const char *pathname; /* pathname for the configuration file */ } } + if (!securecheck) return 0; + if ((statbuf.st_mode & S_IFLNK) == S_IFLNK) { fprintf(stderr, "File %s must not be a symbolic link.\n", pathname); return(PS_AUTHFAIL); @@ -373,7 +376,7 @@ int prc_parse_file (const char *pathname, const flag securecheck) errno = 0; /* Check that the file is secure */ - if (securecheck && (prc_errflag = prc_filecheck(pathname)) != 0) + if ( (prc_errflag = prc_filecheck(pathname, securecheck)) != 0 ) return(prc_errflag); if (errno == ENOENT) |