Diff for /embedaddon/sudo/plugins/sudoers/parse.h between versions 1.1.1.3 and 1.1.1.4

version 1.1.1.3, 2012/10/09 09:29:52 version 1.1.1.4, 2013/07/22 10:46:12
Line 1 Line 1
 /*  /*
 * Copyright (c) 1996, 1998-2000, 2004, 2007-2011 * Copyright (c) 1996, 1998-2000, 2004, 2007-2013
  *      Todd C. Miller <Todd.Miller@courtesan.com>   *      Todd C. Miller <Todd.Miller@courtesan.com>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
Line 15 Line 15
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */   */
   
#ifndef _SUDO_PARSE_H#ifndef _SUDOERS_PARSE_H
#define _SUDO_PARSE_H#define _SUDOERS_PARSE_H
   
 #undef UNSPEC  #undef UNSPEC
 #define UNSPEC  -1  #define UNSPEC  -1
Line 27 Line 27
 #undef IMPLIED  #undef IMPLIED
 #define IMPLIED  2  #define IMPLIED  2
   
   #define SUDO_DIGEST_SHA224      0
   #define SUDO_DIGEST_SHA256      1
   #define SUDO_DIGEST_SHA384      2
   #define SUDO_DIGEST_SHA512      3
   #define SUDO_DIGEST_INVALID     4
   
   struct sudo_digest {
       int digest_type;
       char *digest_str;
   };
   
 /*  /*
 * A command with args. XXX - merge into struct member. * A command with option args and digest.
  * XXX - merge into struct member
  */   */
 struct sudo_command {  struct sudo_command {
     char *cmnd;      char *cmnd;
     char *args;      char *args;
       struct sudo_digest *digest;
 };  };
   
 /*  /*
  * Tags associated with a command.   * Tags associated with a command.
 * Possible values: true, false, UNSPEC. * Possible values: true, false, IMPLIED, UNSPEC.
  */   */
 struct cmndtag {  struct cmndtag {
     __signed int nopasswd: 3;      __signed int nopasswd: 3;
Line 117  struct cmndspec { Line 130  struct cmndspec {
     struct member_list runasuserlist;   /* list of runas users */      struct member_list runasuserlist;   /* list of runas users */
     struct member_list runasgrouplist;  /* list of runas groups */      struct member_list runasgrouplist;  /* list of runas groups */
     struct member *cmnd;                /* command to allow/deny */      struct member *cmnd;                /* command to allow/deny */
       char *digest;                       /* optional command digest */
     struct cmndtag tags;                /* tag specificaion */      struct cmndtag tags;                /* tag specificaion */
 #ifdef HAVE_SELINUX  #ifdef HAVE_SELINUX
     char *role, *type;                  /* SELinux role and type */      char *role, *type;                  /* SELinux role and type */
Line 148  struct runascontainer { Line 162  struct runascontainer {
 struct alias {  struct alias {
     char *name;                         /* alias name */      char *name;                         /* alias name */
     unsigned short type;                /* {USER,HOST,RUNAS,CMND}ALIAS */      unsigned short type;                /* {USER,HOST,RUNAS,CMND}ALIAS */
    unsigned short seqno;                /* sequence number */    bool used;                          /* "use    bool used;                          /* "used" flag for cycle detection */
     struct member_list members;         /* list of alias members */      struct member_list members;         /* list of alias members */
 };  };
   
Line 170  struct defaults { Line 184  struct defaults {
 extern struct userspec_list userspecs;  extern struct userspec_list userspecs;
 extern struct defaults_list defaults;  extern struct defaults_list defaults;
   
/*/* alias.c */
 * Alias sequence number to avoid loops. 
 */ 
extern unsigned int alias_seqno; 
 
/* 
 * Prototypes 
 */ 
char *alias_add(char *, int, struct member *); 
bool addr_matches(char *); 
int cmnd_matches(struct member *); 
int cmndlist_matches(struct member_list *); 
bool command_matches(char *, char *); 
int hostlist_matches(struct member_list *); 
bool hostname_matches(char *, char *, char *); 
bool netgr_matches(char *, char *, char *, char *); 
 bool no_aliases(void);  bool no_aliases(void);
int runaslist_matches(struct member_list *, struct member_list *, struct member **, struct member **);char *alias_add(char *name, int type, struct member *members);
int userlist_matches(struct passwd *, struct member_list *);int alias_compare(const void *a1, const void *a2);
bool usergr_matches(char *, char *, struct passwd *);struct alias *alias_get(char *name, int type);
bool userpw_matches(char *, char *, struct passwd *);struct alias *alias_remove(char *name, int type);
bool group_matches(char *, struct group *);void alias_apply(int (*func)(void *, void *), void *cookie);
struct alias *alias_find(char *, int);void alias_free(void *a);
struct alias *alias_remove(char *, int);void alias_put(struct alias *a);
void alias_free(void *); 
void alias_apply(int (*)(void *, void *), void *); 
 void init_aliases(void);  void init_aliases(void);
void init_lexer(void);
 /* gram.c */
 void init_parser(const char *, bool);  void init_parser(const char *, bool);
 int alias_compare(const void *, const void *);  
   
#endif /* _SUDO_PARSE_H *//* match_addr.c */
 bool addr_matches(char *n);
 
 /* match.c */
 bool command_matches(char *sudoers_cmnd, char *sudoers_args, struct sudo_digest *digest);
 bool group_matches(char *sudoers_group, struct group *gr);
 bool hostname_matches(char *shost, char *lhost, char *pattern);
 bool netgr_matches(char *netgr, char *lhost, char *shost, char *user);
 bool usergr_matches(char *group, char *user, struct passwd *pw);
 bool userpw_matches(char *sudoers_user, char *user, struct passwd *pw);
 int cmnd_matches(struct member *m);
 int cmndlist_matches(struct member_list *list);
 int hostlist_matches(struct member_list *list);
 int runaslist_matches(struct member_list *user_list, struct member_list *group_list, struct member **matching_user, struct member **matching_group);
 int userlist_matches(struct passwd *pw, struct member_list *list);
 
 /* toke.c */
 void init_lexer(void);
 
 /* hexchar.c */
 int hexchar(const char *s);
 
 /* base64.c */
 size_t base64_decode(const char *str, unsigned char *dst, size_t dsize);
 
 #endif /* _SUDOERS_PARSE_H */

Removed from v.1.1.1.3  
changed lines
  Added in v.1.1.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>