mirror of
https://github.com/sudo-project/sudo.git
synced 2025-09-02 07:15:27 +00:00
Convert NEW_DEFAULT anf NEW_MEMBER into static functions.
This commit is contained in:
84
gram.y
84
gram.y
@@ -75,6 +75,8 @@ struct userspec_list userspecs;
|
|||||||
*/
|
*/
|
||||||
static void add_defaults __P((int, struct member *, struct defaults *));
|
static void add_defaults __P((int, struct member *, struct defaults *));
|
||||||
static void add_userspec __P((struct member *, struct privilege *));
|
static void add_userspec __P((struct member *, struct privilege *));
|
||||||
|
static struct defaults *new_default __P((char *, char *, int));
|
||||||
|
static struct member *new_member __P((char *, int));
|
||||||
void yyerror __P((const char *));
|
void yyerror __P((const char *));
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -215,19 +217,19 @@ defaults_list : defaults_entry
|
|||||||
;
|
;
|
||||||
|
|
||||||
defaults_entry : DEFVAR {
|
defaults_entry : DEFVAR {
|
||||||
NEW_DEFAULT($$, $1, NULL, TRUE);
|
$$ = new_default($1, NULL, TRUE);
|
||||||
}
|
}
|
||||||
| '!' DEFVAR {
|
| '!' DEFVAR {
|
||||||
NEW_DEFAULT($$, $2, NULL, FALSE);
|
$$ = new_default($2, NULL, FALSE);
|
||||||
}
|
}
|
||||||
| DEFVAR '=' WORD {
|
| DEFVAR '=' WORD {
|
||||||
NEW_DEFAULT($$, $1, $3, TRUE);
|
$$ = new_default($1, $3, TRUE);
|
||||||
}
|
}
|
||||||
| DEFVAR '+' WORD {
|
| DEFVAR '+' WORD {
|
||||||
NEW_DEFAULT($$, $1, $3, '+');
|
$$ = new_default($1, $3, '+');
|
||||||
}
|
}
|
||||||
| DEFVAR '-' WORD {
|
| DEFVAR '-' WORD {
|
||||||
NEW_DEFAULT($$, $1, $3, '-');
|
$$ = new_default($1, $3, '-');
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -278,19 +280,19 @@ ophost : host {
|
|||||||
;
|
;
|
||||||
|
|
||||||
host : ALIAS {
|
host : ALIAS {
|
||||||
NEW_MEMBER($$, $1, ALIAS);
|
$$ = new_member($1, ALIAS);
|
||||||
}
|
}
|
||||||
| ALL {
|
| ALL {
|
||||||
NEW_MEMBER($$, NULL, ALL);
|
$$ = new_member(NULL, ALL);
|
||||||
}
|
}
|
||||||
| NETGROUP {
|
| NETGROUP {
|
||||||
NEW_MEMBER($$, $1, NETGROUP);
|
$$ = new_member($1, NETGROUP);
|
||||||
}
|
}
|
||||||
| NTWKADDR {
|
| NTWKADDR {
|
||||||
NEW_MEMBER($$, $1, NTWKADDR);
|
$$ = new_member($1, NTWKADDR);
|
||||||
}
|
}
|
||||||
| WORD {
|
| WORD {
|
||||||
NEW_MEMBER($$, $1, WORD);
|
$$ = new_member($1, WORD);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -348,19 +350,19 @@ oprunasuser : runasuser {
|
|||||||
;
|
;
|
||||||
|
|
||||||
runasuser : ALIAS {
|
runasuser : ALIAS {
|
||||||
NEW_MEMBER($$, $1, ALIAS);
|
$$ = new_member($1, ALIAS);
|
||||||
}
|
}
|
||||||
| ALL {
|
| ALL {
|
||||||
NEW_MEMBER($$, NULL, ALL);
|
$$ = new_member(NULL, ALL);
|
||||||
}
|
}
|
||||||
| NETGROUP {
|
| NETGROUP {
|
||||||
NEW_MEMBER($$, $1, NETGROUP);
|
$$ = new_member($1, NETGROUP);
|
||||||
}
|
}
|
||||||
| USERGROUP {
|
| USERGROUP {
|
||||||
NEW_MEMBER($$, $1, USERGROUP);
|
$$ = new_member($1, USERGROUP);
|
||||||
}
|
}
|
||||||
| WORD {
|
| WORD {
|
||||||
NEW_MEMBER($$, $1, WORD);
|
$$ = new_member($1, WORD);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -388,16 +390,16 @@ cmndtag : /* empty */ {
|
|||||||
;
|
;
|
||||||
|
|
||||||
cmnd : ALL {
|
cmnd : ALL {
|
||||||
NEW_MEMBER($$, NULL, ALL);
|
$$ = new_member(NULL, ALL);
|
||||||
}
|
}
|
||||||
| ALIAS {
|
| ALIAS {
|
||||||
NEW_MEMBER($$, $1, ALIAS);
|
$$ = new_member($1, ALIAS);
|
||||||
}
|
}
|
||||||
| COMMAND {
|
| COMMAND {
|
||||||
struct sudo_command *c = emalloc(sizeof(*c));
|
struct sudo_command *c = emalloc(sizeof(*c));
|
||||||
c->cmnd = $1.cmnd;
|
c->cmnd = $1.cmnd;
|
||||||
c->args = $1.args;
|
c->args = $1.args;
|
||||||
NEW_MEMBER($$, (char *)c, COMMAND);
|
$$ = new_member((char *)c, COMMAND);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -485,23 +487,59 @@ opuser : user {
|
|||||||
;
|
;
|
||||||
|
|
||||||
user : ALIAS {
|
user : ALIAS {
|
||||||
NEW_MEMBER($$, $1, ALIAS);
|
$$ = new_member($1, ALIAS);
|
||||||
}
|
}
|
||||||
| ALL {
|
| ALL {
|
||||||
NEW_MEMBER($$, NULL, ALL);
|
$$ = new_member(NULL, ALL);
|
||||||
}
|
}
|
||||||
| NETGROUP {
|
| NETGROUP {
|
||||||
NEW_MEMBER($$, $1, NETGROUP);
|
$$ = new_member($1, NETGROUP);
|
||||||
}
|
}
|
||||||
| USERGROUP {
|
| USERGROUP {
|
||||||
NEW_MEMBER($$, $1, USERGROUP);
|
$$ = new_member($1, USERGROUP);
|
||||||
}
|
}
|
||||||
| WORD {
|
| WORD {
|
||||||
NEW_MEMBER($$, $1, WORD);
|
$$ = new_member($1, WORD);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
%%
|
%%
|
||||||
|
static struct defaults *
|
||||||
|
new_default(var, val, op)
|
||||||
|
char *var;
|
||||||
|
char *val;
|
||||||
|
int op;
|
||||||
|
{
|
||||||
|
struct defaults *d;
|
||||||
|
|
||||||
|
d = emalloc(sizeof(struct defaults));
|
||||||
|
d->var = var;
|
||||||
|
d->val = val;
|
||||||
|
LH_INIT(&d->binding);
|
||||||
|
d->type = 0;
|
||||||
|
d->op = op;
|
||||||
|
d->prev = d;
|
||||||
|
d->next = NULL;
|
||||||
|
|
||||||
|
return(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct member *
|
||||||
|
new_member(name, type)
|
||||||
|
char *name;
|
||||||
|
int type;
|
||||||
|
{
|
||||||
|
struct member *m;
|
||||||
|
|
||||||
|
m = emalloc(sizeof(struct member));
|
||||||
|
m->name = name;
|
||||||
|
m->type = type;
|
||||||
|
m->prev = m;
|
||||||
|
m->next = NULL;
|
||||||
|
|
||||||
|
return(m);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add a list of defaults structures to the defaults list.
|
* Add a list of defaults structures to the defaults list.
|
||||||
* The binding, if non-NULL, specifies a list of hosts, users, or
|
* The binding, if non-NULL, specifies a list of hosts, users, or
|
||||||
|
25
parse.h
25
parse.h
@@ -148,31 +148,6 @@ struct defaults {
|
|||||||
struct defaults *prev, *next;
|
struct defaults *prev, *next;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* Allocate space for a defaults entry and populate it.
|
|
||||||
*/
|
|
||||||
#undef NEW_DEFAULT
|
|
||||||
#define NEW_DEFAULT(r, v1, v2, o) do { \
|
|
||||||
(r) = emalloc(sizeof(struct defaults)); \
|
|
||||||
(r)->var = (v1); \
|
|
||||||
(r)->val = (v2); \
|
|
||||||
(r)->op = (o); \
|
|
||||||
(r)->prev = (r); \
|
|
||||||
(r)->next = NULL; \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Allocate space for a member and populate it.
|
|
||||||
*/
|
|
||||||
#undef NEW_MEMBER
|
|
||||||
#define NEW_MEMBER(r, n, t) do { \
|
|
||||||
(r) = emalloc(sizeof(struct member)); \
|
|
||||||
(r)->name = (n); \
|
|
||||||
(r)->type = (t); \
|
|
||||||
(r)->prev = (r); \
|
|
||||||
(r)->next = NULL; \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Append one queue (or single entry) to another using the
|
* Append one queue (or single entry) to another using the
|
||||||
* circular properties of the prev pointer to simplify the logic.
|
* circular properties of the prev pointer to simplify the logic.
|
||||||
|
Reference in New Issue
Block a user