* Fixes ported from trunk:
+ * bug #23167: sbr/ruserpass.c (ruserpass): make bad permissions
+ on .netrc be an instantly fatal error. Previously we returned
+ an error value; however, no caller was checking it. So now
+ ruserpass() has a void return type.
+
* bug #23163: various minor fixes for the benefit of
older Unixes (specifically SunOS 4):
reintroduce strerror() substitute implementation
char *r1bindex(char *, int);
void readconfig (struct node **, FILE *, char *, int);
int refile (char **, char *);
-int ruserpass(char *, char **, char **);
+void ruserpass(char *, char **, char **);
int remdir (char *);
int seq_addmsg (struct msgs *, char *, int, int, int);
int seq_addsel (struct msgs *, char *, int, int);
static int token(void);
-int
+void
ruserpass(char *host, char **aname, char **apass)
{
char *hdir, buf[BUFSIZ];
case PASSWD:
if (fstat(fileno(cfile), &stb) >= 0 &&
(stb.st_mode & 077) != 0) {
- fprintf(stderr, "Error - .netrc file not correct mode.\n");
- fprintf(stderr, "Remove password or correct mode.\n");
- goto bad;
+ /* We make this a fatal error to force the user to correct it */
+ advise(NULL, "Error - ~/.netrc file must not be world or group readable.");
+ adios(NULL, "Remove password or correct file permissions.");
}
if (token() && *apass == 0) {
*apass = mh_xmalloc((size_t) strlen(tokval) + 1);
strcpy (*apass, mypass);
}
- return(0);
-bad:
- fclose(cfile);
- return(-1);
}
static int