*/
#ifndef lint
-static char rcsid[] = "$Id: options.c,v 1.46 1999/02/26 11:03:34 paulus Exp $";
+static char rcsid[] = "$Id: options.c,v 1.49 1999/03/08 01:47:24 paulus Exp $";
#endif
#include <ctype.h>
#endif
static char *usage_string = "\
-pppd version %s patch level %d%s\n\
+pppd version %s.%d%s\n\
Usage: %s [ options ], where options are:\n\
<device> Communicate over the named device\n\
<speed> Set the baud rate to <speed>\n\
char args[MAXARGS][MAXWORDLEN];
char cmd[MAXWORDLEN];
- if ((f = fopen(filename, "r")) == NULL) {
+ if (check_prot)
+ seteuid(getuid());
+ f = fopen(filename, "r");
+ if (check_prot)
+ seteuid(0);
+ if (f == NULL) {
if (!must_exist && errno == ENOENT)
return 1;
option_error("Can't open options file %s: %m", filename);
return 0;
}
+#if 0 /* check done by setting effective UID above */
if (check_prot && !readable(fileno(f))) {
option_error("Can't open options file %s: access denied", filename);
fclose(f);
return 0;
}
+#endif
oldpriv = privileged_option;
privileged_option = priv;
char **argv;
{
if (phase == PHASE_INITIALIZE) {
- fprintf(stderr, "pppd version %s patch level %d%s\n",
+ fprintf(stderr, "pppd version %s.%d%s\n",
VERSION, PATCHLEVEL, IMPLEMENTATION);
exit(0);
}
return -1;
}
- if (!privileged_option) {
- if (!quiet)
- option_error("setting the device name requires root privilege");
- return -1;
- }
-
(void) strncpy(devnam, cp, MAXPATHLEN);
devnam[MAXPATHLEN-1] = 0;
default_device = FALSE;
+ devnam_info.priv = privileged_option;
+ devnam_info.source = option_source;
return 1;
}