Imported Upstream version 1.8.6p8
[debian/sudo] / plugins / sudoers / parse.h
index 3b1a5b50dd2a265b420853751f7e91a71b7953d7..3f7c451aeb41e857a9b09c3cca6949a4cb391e2e 100644 (file)
@@ -57,7 +57,17 @@ struct selinux_info {
 };
 
 /*
- * The parses sudoers file is stored as a collection of linked lists,
+ * Solaris privileges container struct
+ * Currently just contains permitted and limit privileges.
+ * It could have PFEXEC and PRIV_AWARE flags added in the future.
+ */
+struct solaris_privs_info {
+    char *privs;
+    char *limitprivs;
+};
+
+/*
+ * The parsed sudoers file is stored as a collection of linked lists,
  * modelled after the yacc grammar.
  *
  * Other than the alias struct, which is stored in a red-black tree,
@@ -111,6 +121,9 @@ struct cmndspec {
 #ifdef HAVE_SELINUX
     char *role, *type;                 /* SELinux role and type */
 #endif
+#ifdef HAVE_PRIV_SET
+    char *privs, *limitprivs;          /* Solaris privilege sets */
+#endif
 };
 
 /*
@@ -174,7 +187,7 @@ int hostlist_matches(struct member_list *);
 bool hostname_matches(char *, char *, char *);
 bool netgr_matches(char *, char *, char *, char *);
 bool no_aliases(void);
-int runaslist_matches(struct member_list *, struct member_list *);
+int runaslist_matches(struct member_list *, struct member_list *, struct member **, struct member **);
 int userlist_matches(struct passwd *, struct member_list *);
 bool usergr_matches(char *, char *, struct passwd *);
 bool userpw_matches(char *, char *, struct passwd *);
@@ -185,7 +198,7 @@ void alias_free(void *);
 void alias_apply(int (*)(void *, void *), void *);
 void init_aliases(void);
 void init_lexer(void);
-void init_parser(const char *, int);
+void init_parser(const char *, bool);
 int alias_compare(const void *, const void *);
 
 #endif /* _SUDO_PARSE_H */