move update_defaults() to parse.c
This commit is contained in:
42
defaults.c
42
defaults.c
@@ -482,48 +482,6 @@ init_defaults()
|
||||
firsttime = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Update the defaults based on what was set by sudoers.
|
||||
* If skip_cmnd is 1, skip DEFAULTS_CMND, if it is 0, skip all others.
|
||||
* Returns TRUE on success and FALSE on failure.
|
||||
*/
|
||||
int
|
||||
update_defaults(skip_cmnd)
|
||||
int skip_cmnd;
|
||||
{
|
||||
struct defaults *def;
|
||||
|
||||
tq_foreach_fwd(&defaults, def) {
|
||||
if (skip_cmnd == (def->type == DEFAULTS_CMND))
|
||||
continue;
|
||||
switch (def->type) {
|
||||
case DEFAULTS:
|
||||
if (!set_default(def->var, def->val, def->op))
|
||||
return(FALSE);
|
||||
case DEFAULTS_USER:
|
||||
if (userlist_matches(sudo_user.pw, &def->binding) &&
|
||||
!set_default(def->var, def->val, def->op))
|
||||
return(FALSE);
|
||||
break;
|
||||
case DEFAULTS_RUNAS:
|
||||
if (runaslist_matches(&def->binding, NULL) &&
|
||||
!set_default(def->var, def->val, def->op))
|
||||
return(FALSE);
|
||||
break;
|
||||
case DEFAULTS_HOST:
|
||||
if (hostlist_matches(&def->binding) &&
|
||||
!set_default(def->var, def->val, def->op))
|
||||
return(FALSE);
|
||||
break;
|
||||
case DEFAULTS_CMND:
|
||||
if (cmndlist_matches(&def->binding) &&
|
||||
!set_default(def->var, def->val, def->op))
|
||||
return(FALSE);
|
||||
}
|
||||
}
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
static int
|
||||
store_int(val, def, op)
|
||||
char *val;
|
||||
|
46
parse.c
46
parse.c
@@ -122,6 +122,51 @@ sudo_file_parse(nss)
|
||||
return(0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Update the defaults based on what was set by sudoers.
|
||||
* If skip_cmnd is 1, skip DEFAULTS_CMND, if it is 0, skip all others.
|
||||
* Returns TRUE on success and FALSE on failure.
|
||||
*/
|
||||
int
|
||||
update_defaults(skip_cmnd)
|
||||
int skip_cmnd;
|
||||
{
|
||||
struct defaults *def;
|
||||
|
||||
tq_foreach_fwd(&defaults, def) {
|
||||
if (skip_cmnd == (def->type == DEFAULTS_CMND))
|
||||
continue;
|
||||
switch (def->type) {
|
||||
case DEFAULTS:
|
||||
if (!set_default(def->var, def->val, def->op))
|
||||
return(FALSE);
|
||||
case DEFAULTS_USER:
|
||||
if (userlist_matches(sudo_user.pw, &def->binding) &&
|
||||
!set_default(def->var, def->val, def->op))
|
||||
return(FALSE);
|
||||
break;
|
||||
case DEFAULTS_RUNAS:
|
||||
if (runaslist_matches(&def->binding, NULL) &&
|
||||
!set_default(def->var, def->val, def->op))
|
||||
return(FALSE);
|
||||
break;
|
||||
case DEFAULTS_HOST:
|
||||
if (hostlist_matches(&def->binding) &&
|
||||
!set_default(def->var, def->val, def->op))
|
||||
return(FALSE);
|
||||
break;
|
||||
case DEFAULTS_CMND:
|
||||
if (cmndlist_matches(&def->binding) &&
|
||||
!set_default(def->var, def->val, def->op))
|
||||
return(FALSE);
|
||||
}
|
||||
}
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Wrapper around update_defaults() for nsswitch code.
|
||||
*/
|
||||
int
|
||||
sudo_file_setdefs(nss)
|
||||
struct sudo_nss *nss;
|
||||
@@ -129,7 +174,6 @@ sudo_file_setdefs(nss)
|
||||
if (nss->handle == NULL)
|
||||
return(-1);
|
||||
|
||||
/* XXX - move guts of update_defaults here */
|
||||
if (!update_defaults(SKIP_CMND))
|
||||
return(-1);
|
||||
return(0);
|
||||
|
@@ -297,6 +297,13 @@ main(argc, argv)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int
|
||||
update_defaults(skip_cmnd)
|
||||
int skip_cmnd;
|
||||
{
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
void
|
||||
sudo_setspent()
|
||||
{
|
||||
|
Reference in New Issue
Block a user