parse_error is now bool, not int

This commit is contained in:
Todd C. Miller
2012-01-04 15:45:27 -05:00
parent 0f5eaa17fd
commit 47bcaf57bc
3 changed files with 12 additions and 9 deletions

View File

@@ -70,7 +70,8 @@ struct sudo_nss sudo_nss_file = {
*/ */
extern FILE *yyin; extern FILE *yyin;
extern char *errorfile; extern char *errorfile;
extern int errorlineno, parse_error; extern int errorlineno;
extern bool parse_error;
/* /*
* Local prototypes. * Local prototypes.

View File

@@ -109,7 +109,8 @@ struct interface *interfaces;
struct sudo_user sudo_user; struct sudo_user sudo_user;
struct passwd *list_pw; struct passwd *list_pw;
static char *runas_group, *runas_user; static char *runas_group, *runas_user;
extern int errorlineno, parse_error; extern int errorlineno;
extern bool parse_error;
extern char *errorfile; extern char *errorfile;
sudo_printf_t sudo_printf = testsudoers_printf; sudo_printf_t sudo_printf = testsudoers_printf;
sudo_conv_t sudo_conv; /* NULL in non-plugin */ sudo_conv_t sudo_conv; /* NULL in non-plugin */

View File

@@ -106,7 +106,7 @@ static char *get_editor(char **);
static void get_hostname(void); static void get_hostname(void);
static char whatnow(void); static char whatnow(void);
static int check_aliases(bool, bool); static int check_aliases(bool, bool);
static int check_syntax(char *, bool, bool); static bool check_syntax(char *, bool, bool);
static bool edit_sudoers(struct sudoersfile *, char *, char *, int); static bool edit_sudoers(struct sudoersfile *, char *, char *, int);
static bool install_sudoers(struct sudoersfile *, bool); static bool install_sudoers(struct sudoersfile *, bool);
static int print_unused(void *, void *); static int print_unused(void *, void *);
@@ -128,7 +128,8 @@ extern void yyrestart(FILE *);
extern struct rbtree *aliases; extern struct rbtree *aliases;
extern FILE *yyin; extern FILE *yyin;
extern char *sudoers, *errorfile; extern char *sudoers, *errorfile;
extern int errorlineno, parse_error; extern int errorlineno;
extern bool parse_error;
/* For getopt(3) */ /* For getopt(3) */
extern char *optarg; extern char *optarg;
extern int optind; extern int optind;
@@ -217,7 +218,7 @@ main(int argc, char *argv[])
init_defaults(); init_defaults();
if (checkonly) if (checkonly)
exit(check_syntax(sudoers_path, quiet, strict)); exit(check_syntax(sudoers_path, quiet, strict) ? 1 : 0);
/* /*
* Parse the existing sudoers file(s) in quiet mode to highlight any * Parse the existing sudoers file(s) in quiet mode to highlight any
@@ -746,11 +747,11 @@ run_command(char *path, char **argv)
return WEXITSTATUS(status); return WEXITSTATUS(status);
} }
static int static bool
check_syntax(char *sudoers_path, bool quiet, bool strict) check_syntax(char *sudoers_path, bool quiet, bool strict)
{ {
struct stat sb; struct stat sb;
int rval; bool rval;
if (strcmp(sudoers_path, "-") == 0) { if (strcmp(sudoers_path, "-") == 0) {
yyin = stdin; yyin = stdin;
@@ -786,7 +787,7 @@ check_syntax(char *sudoers_path, bool quiet, bool strict)
/* Check mode and owner in strict mode. */ /* Check mode and owner in strict mode. */
if (strict && yyin != stdin && fstat(fileno(yyin), &sb) == 0) { if (strict && yyin != stdin && fstat(fileno(yyin), &sb) == 0) {
if (sb.st_uid != SUDOERS_UID || sb.st_gid != SUDOERS_GID) { if (sb.st_uid != SUDOERS_UID || sb.st_gid != SUDOERS_GID) {
rval = 1; rval = true;
if (!quiet) { if (!quiet) {
fprintf(stderr, fprintf(stderr,
_("%s: wrong owner (uid, gid) should be (%u, %u)\n"), _("%s: wrong owner (uid, gid) should be (%u, %u)\n"),
@@ -794,7 +795,7 @@ check_syntax(char *sudoers_path, bool quiet, bool strict)
} }
} }
if ((sb.st_mode & 07777) != SUDOERS_MODE) { if ((sb.st_mode & 07777) != SUDOERS_MODE) {
rval = 1; rval = true;
if (!quiet) { if (!quiet) {
fprintf(stderr, _("%s: bad permissions, should be mode 0%o\n"), fprintf(stderr, _("%s: bad permissions, should be mode 0%o\n"),
sudoers_path, SUDOERS_MODE); sudoers_path, SUDOERS_MODE);