-/*
+/* ruserpass.c -- parse .netrc-format file.
+ *
* Portions of this code are
* Copyright (c) 1985 Regents of the University of California.
* All rights reserved.
switch(t) {
case DEFAULT:
usedefault = 1;
- /* FALL THROUGH */
+ /* FALLTHRU */
case MACH:
if (!usedefault) {
(stb.st_mode & 077) != 0) {
/* We make this a fatal error to force the
user to correct it. */
- advise(NULL, "Error - file %s must not be world or "
- "group readable.", credentials_file);
+ inform("group or other permissions, %#o, "
+ "forbidden: %s", stb.st_mode, credentials_file);
adios(NULL, "Remove password or correct file "
"permissions.");
}
}
printf("Name (%s:%s): ", host, myname);
- if (fgets(tmp, sizeof(tmp) - 1, stdin) == NULL) {
+ if (fgets(tmp, sizeof tmp, stdin) == NULL) {
advise ("tmp", "fgets");
}
- TrimSuffixC(tmp, '\n');
+ trim_suffix_c(tmp, '\n');
if (*tmp != '\0' || myname == NULL) {
myname = tmp;
}
return TOK_EOF;
while ((c = getc(cfile)) != EOF && c && !strchr(stop, c)) {
- if (c == '\\')
- c = getc(cfile); /* BUG: What if this is EOF. */
+ if (c == '\\' && (c = getc(cfile)) == EOF)
+ return TOK_EOF; /* Discard whole token. */
+
*cp++ = c;
if (cp - tokval > MAX_TOKVAL_SIZE-1) {
adios(NULL, "credential tokens restricted to length %d",
for (t = toktabs; t->tokstr; t++)
if (!strcmp(t->tokstr, tokval))
- return (t->tval);
+ return t->tval;
- return (ID);
+ return ID;
}