diff options
author | Todd C. Miller <Todd.Miller@sudo.ws> | 2023-05-09 14:01:41 -0600 |
---|---|---|
committer | Todd C. Miller <Todd.Miller@sudo.ws> | 2023-05-09 14:01:41 -0600 |
commit | 4a3e615b5a4f5d33a07d977a67530519da05313f (patch) | |
tree | 8fadd46db0c3478b548b806166bb07a335f5a13b | |
parent | 668fba107aafd605732e688b0d23adbcf606312e (diff) | |
download | sudo-4a3e615b5a4f5d33a07d977a67530519da05313f.tar.gz |
Move parser prototypes / externs from sudoers.h to parse.h or toke.h.
-rw-r--r-- | plugins/sudoers/parse.h | 20 | ||||
-rw-r--r-- | plugins/sudoers/sudoers.h | 19 | ||||
-rw-r--r-- | plugins/sudoers/toke.h | 7 |
3 files changed, 22 insertions, 24 deletions
diff --git a/plugins/sudoers/parse.h b/plugins/sudoers/parse.h index a69bc5a10..b958331af 100644 --- a/plugins/sudoers/parse.h +++ b/plugins/sudoers/parse.h @@ -375,6 +375,8 @@ struct parser_leak_entry { }; SLIST_HEAD(parser_leak_list, parser_leak_entry); +#define YY_DECL int sudoerslex(void) + /* alias.c */ struct rbtree *alloc_aliases(void); void free_aliases(struct rbtree *aliases); @@ -392,9 +394,9 @@ void alias_put(struct alias *a); int check_aliases(struct sudoers_parse_tree *parse_tree, bool strict, bool quiet, int (*cb_unused)(struct sudoers_parse_tree *, struct alias *, void *)); /* gram.y */ +extern bool parse_error; extern struct sudoers_parse_tree parsed_policy; extern bool (*sudoers_error_hook)(const char *file, int line, int column, const char *fmt, va_list args); -bool init_parser(const char *file, const struct sudoers_parser_config *conf); bool reset_parser(void); void free_member(struct member *m); void free_members(struct member_list *members); @@ -405,12 +407,19 @@ void free_userspec(struct userspec *us); void free_userspecs(struct userspec_list *usl); void free_default(struct defaults *def); void free_defaults(struct defaults_list *defs); +bool init_parser(const char *file, const struct sudoers_parser_config *conf); void init_parse_tree(struct sudoers_parse_tree *parse_tree, char *lhost, char *shost, struct sudo_nss *nss); void free_parse_tree(struct sudoers_parse_tree *parse_tree); -void reparent_parse_tree(struct sudoers_parse_tree *new_tree); bool parser_leak_add(enum parser_leak_types type, void *v); bool parser_leak_remove(enum parser_leak_types type, void *v); void parser_leak_init(void); +void reparent_parse_tree(struct sudoers_parse_tree *new_tree); +int sudoersparse(void); +uid_t sudoers_file_uid(void); +gid_t sudoers_file_gid(void); +mode_t sudoers_file_mode(void); +bool sudoers_error_recovery(void); +bool sudoers_strict(void); /* match_addr.c */ bool addr_matches(char *n); @@ -440,8 +449,11 @@ int userlist_matches(const struct sudoers_parse_tree *parse_tree, const struct p const char *sudo_getdomainname(void); struct gid_list *runas_getgroups(void); -/* toke.c */ -void init_lexer(void); +/* toke.l */ +YY_DECL; +void sudoersrestart(FILE *); +extern FILE *sudoersin; +extern char *sudoers; /* base64.c */ size_t base64_decode(const char *str, unsigned char *dst, size_t dsize); diff --git a/plugins/sudoers/sudoers.h b/plugins/sudoers/sudoers.h index f0a193771..98af8a3d3 100644 --- a/plugins/sudoers/sudoers.h +++ b/plugins/sudoers/sudoers.h @@ -287,8 +287,6 @@ struct timespec; /* * Function prototypes */ -#define YY_DECL int sudoerslex(void) - /* goodpath.c */ bool sudo_goodpath(const char *path, struct stat *sbp); @@ -322,23 +320,6 @@ bool set_perms(int); bool restore_perms(void); int pam_prep_user(struct passwd *); -/* gram.y */ -int sudoersparse(void); -uid_t sudoers_file_uid(void); -gid_t sudoers_file_gid(void); -mode_t sudoers_file_mode(void); -bool sudoers_error_recovery(void); -bool sudoers_strict(void); -extern bool parse_error; - -/* toke.l */ -YY_DECL; -void sudoersrestart(FILE *); -extern FILE *sudoersin; -extern char *sudoers; -extern char *sudoers_search_path; -extern int sudolineno; - /* defaults.c */ void dump_defaults(void); void dump_auth_methods(void); diff --git a/plugins/sudoers/toke.h b/plugins/sudoers/toke.h index bd0780595..ddd36a1a5 100644 --- a/plugins/sudoers/toke.h +++ b/plugins/sudoers/toke.h @@ -1,7 +1,8 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 2011-2013, 2015-2016, 2020 Todd C. Miller <Todd.Miller@sudo.ws> + * Copyright (c) 2011-2013, 2015-2016, 2020-2023 + * Todd C. Miller <Todd.Miller@sudo.ws> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -27,13 +28,17 @@ struct sudolinebuf { size_t toke_start; /* starting column of current token */ size_t toke_end; /* ending column of current token */ }; + extern const char *sudoers_errstr; extern struct sudolinebuf sudolinebuf; +extern int sudolineno; +extern char *sudoers_search_path; bool append(const char *, size_t); bool fill_args(const char *, size_t, int); bool fill_cmnd(const char *, size_t); bool fill(const char *, size_t); +void init_lexer(void); bool ipv6_valid(const char *s); int sudoers_trace_print(const char *); void sudoerserrorf(const char *, ...) sudo_printf0like(1, 2); |