summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd C. Miller <Todd.Miller@sudo.ws>2023-05-09 14:01:41 -0600
committerTodd C. Miller <Todd.Miller@sudo.ws>2023-05-09 14:01:41 -0600
commit4a3e615b5a4f5d33a07d977a67530519da05313f (patch)
tree8fadd46db0c3478b548b806166bb07a335f5a13b
parent668fba107aafd605732e688b0d23adbcf606312e (diff)
downloadsudo-4a3e615b5a4f5d33a07d977a67530519da05313f.tar.gz
Move parser prototypes / externs from sudoers.h to parse.h or toke.h.
-rw-r--r--plugins/sudoers/parse.h20
-rw-r--r--plugins/sudoers/sudoers.h19
-rw-r--r--plugins/sudoers/toke.h7
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);