version 1.23, 2008/11/18 16:02:01 |
version 1.24, 2008/11/22 16:33:42 |
|
|
#include "version.h" |
#include "version.h" |
|
|
#ifndef lint |
#ifndef lint |
__unused static const char rcsid[] = "$Sudo: visudo.c,v 1.221 2008/11/18 15:50:53 millert Exp $"; |
__unused static const char rcsid[] = "$Sudo: visudo.c,v 1.223 2008/11/22 15:12:26 millert Exp $"; |
#endif /* lint */ |
#endif /* lint */ |
|
|
struct sudoersfile { |
struct sudoersfile { |
|
|
struct sudoersfile *sp; |
struct sudoersfile *sp; |
char *args, *editor, *sudoers_path; |
char *args, *editor, *sudoers_path; |
int ch, checkonly, quiet, strict, oldperms; |
int ch, checkonly, quiet, strict, oldperms; |
|
#if defined(SUDO_DEVEL) && defined(__OpenBSD__) |
|
extern char *malloc_options; |
|
malloc_options = "AFGJPR"; |
|
#endif |
|
|
Argv = argv; |
Argv = argv; |
if ((Argc = argc) < 1) |
if ((Argc = argc) < 1) |
|
|
int strict; |
int strict; |
{ |
{ |
struct cmndspec *cs; |
struct cmndspec *cs; |
struct member *m; |
struct member *m, *binding; |
struct privilege *priv; |
struct privilege *priv; |
struct userspec *us; |
struct userspec *us; |
int error = 0; |
struct defaults *d; |
|
int atype, error = 0; |
|
|
/* Forward check. */ |
/* Forward check. */ |
tq_foreach_fwd(&userspecs, us) { |
tq_foreach_fwd(&userspecs, us) { |
|
|
} |
} |
} |
} |
} |
} |
|
tq_foreach_fwd(&defaults, d) { |
|
switch (d->type) { |
|
case DEFAULTS_HOST: |
|
atype = HOSTALIAS; |
|
break; |
|
case DEFAULTS_USER: |
|
atype = USERALIAS; |
|
break; |
|
case DEFAULTS_RUNAS: |
|
atype = RUNASALIAS; |
|
break; |
|
case DEFAULTS_CMND: |
|
atype = CMNDALIAS; |
|
break; |
|
default: |
|
continue; /* not an alias */ |
|
} |
|
tq_foreach_fwd(&d->binding, binding) { |
|
for (m = binding; m != NULL; m = m->next) { |
|
if (m->type == ALIAS) |
|
(void) alias_remove(m->name, atype); |
|
} |
|
} |
|
} |
|
|
/* If all aliases were referenced we will have an empty tree. */ |
/* If all aliases were referenced we will have an empty tree. */ |
if (no_aliases()) |
if (no_aliases()) |
return(0); |
return(0); |