Include parse.h in sudoers.h since it will soon be required.
This commit is contained in:
@@ -83,8 +83,7 @@
|
||||
#endif /* YYBISON && HAVE_ALLOCA_H && !__GNUC__ */
|
||||
#include <errno.h>
|
||||
|
||||
#include "sudoers.h" /* XXX */
|
||||
#include "parse.h"
|
||||
#include "sudoers.h"
|
||||
#include "toke.h"
|
||||
|
||||
/* If we last saw a newline the entry is on the preceding line. */
|
||||
@@ -110,7 +109,7 @@ static bool add_userspec(struct member *, struct privilege *);
|
||||
static struct defaults *new_default(char *, char *, short);
|
||||
static struct member *new_member(char *, int);
|
||||
static struct sudo_digest *new_digest(int, char *);
|
||||
#line 77 "gram.y"
|
||||
#line 76 "gram.y"
|
||||
#ifndef YYSTYPE_DEFINED
|
||||
#define YYSTYPE_DEFINED
|
||||
typedef union {
|
||||
@@ -127,7 +126,7 @@ typedef union {
|
||||
int tok;
|
||||
} YYSTYPE;
|
||||
#endif /* YYSTYPE_DEFINED */
|
||||
#line 130 "gram.c"
|
||||
#line 129 "gram.c"
|
||||
#define COMMAND 257
|
||||
#define ALIAS 258
|
||||
#define DEFVAR 259
|
||||
@@ -667,7 +666,7 @@ short *yysslim;
|
||||
YYSTYPE *yyvs;
|
||||
unsigned int yystacksize;
|
||||
int yyparse(void);
|
||||
#line 899 "gram.y"
|
||||
#line 898 "gram.y"
|
||||
void
|
||||
sudoerserror(const char *s)
|
||||
{
|
||||
@@ -1046,7 +1045,7 @@ init_options(struct command_options *opts)
|
||||
opts->limitprivs = NULL;
|
||||
#endif
|
||||
}
|
||||
#line 997 "gram.c"
|
||||
#line 996 "gram.c"
|
||||
/* allocate initial stack or double stack size, up to YYMAXDEPTH */
|
||||
#if defined(__cplusplus) || defined(__STDC__)
|
||||
static int yygrowstack(void)
|
||||
@@ -1255,23 +1254,23 @@ yyreduce:
|
||||
switch (yyn)
|
||||
{
|
||||
case 1:
|
||||
#line 175 "gram.y"
|
||||
#line 174 "gram.y"
|
||||
{ ; }
|
||||
break;
|
||||
case 5:
|
||||
#line 183 "gram.y"
|
||||
#line 182 "gram.y"
|
||||
{
|
||||
;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
#line 186 "gram.y"
|
||||
#line 185 "gram.y"
|
||||
{
|
||||
yyerrok;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
#line 189 "gram.y"
|
||||
#line 188 "gram.y"
|
||||
{
|
||||
if (!add_userspec(yyvsp[-1].member, yyvsp[0].privilege)) {
|
||||
sudoerserror(N_("unable to allocate memory"));
|
||||
@@ -1280,73 +1279,73 @@ case 7:
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
#line 195 "gram.y"
|
||||
#line 194 "gram.y"
|
||||
{
|
||||
;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
#line 198 "gram.y"
|
||||
#line 197 "gram.y"
|
||||
{
|
||||
;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
#line 201 "gram.y"
|
||||
#line 200 "gram.y"
|
||||
{
|
||||
;
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
#line 204 "gram.y"
|
||||
#line 203 "gram.y"
|
||||
{
|
||||
;
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
#line 207 "gram.y"
|
||||
#line 206 "gram.y"
|
||||
{
|
||||
if (!add_defaults(DEFAULTS, NULL, yyvsp[0].defaults))
|
||||
YYERROR;
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
#line 211 "gram.y"
|
||||
#line 210 "gram.y"
|
||||
{
|
||||
if (!add_defaults(DEFAULTS_USER, yyvsp[-1].member, yyvsp[0].defaults))
|
||||
YYERROR;
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
#line 215 "gram.y"
|
||||
#line 214 "gram.y"
|
||||
{
|
||||
if (!add_defaults(DEFAULTS_RUNAS, yyvsp[-1].member, yyvsp[0].defaults))
|
||||
YYERROR;
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
#line 219 "gram.y"
|
||||
#line 218 "gram.y"
|
||||
{
|
||||
if (!add_defaults(DEFAULTS_HOST, yyvsp[-1].member, yyvsp[0].defaults))
|
||||
YYERROR;
|
||||
}
|
||||
break;
|
||||
case 16:
|
||||
#line 223 "gram.y"
|
||||
#line 222 "gram.y"
|
||||
{
|
||||
if (!add_defaults(DEFAULTS_CMND, yyvsp[-1].member, yyvsp[0].defaults))
|
||||
YYERROR;
|
||||
}
|
||||
break;
|
||||
case 18:
|
||||
#line 230 "gram.y"
|
||||
#line 229 "gram.y"
|
||||
{
|
||||
HLTQ_CONCAT(yyvsp[-2].defaults, yyvsp[0].defaults, entries);
|
||||
yyval.defaults = yyvsp[-2].defaults;
|
||||
}
|
||||
break;
|
||||
case 19:
|
||||
#line 236 "gram.y"
|
||||
#line 235 "gram.y"
|
||||
{
|
||||
yyval.defaults = new_default(yyvsp[0].string, NULL, true);
|
||||
if (yyval.defaults == NULL) {
|
||||
@@ -1356,7 +1355,7 @@ case 19:
|
||||
}
|
||||
break;
|
||||
case 20:
|
||||
#line 243 "gram.y"
|
||||
#line 242 "gram.y"
|
||||
{
|
||||
yyval.defaults = new_default(yyvsp[0].string, NULL, false);
|
||||
if (yyval.defaults == NULL) {
|
||||
@@ -1366,7 +1365,7 @@ case 20:
|
||||
}
|
||||
break;
|
||||
case 21:
|
||||
#line 250 "gram.y"
|
||||
#line 249 "gram.y"
|
||||
{
|
||||
yyval.defaults = new_default(yyvsp[-2].string, yyvsp[0].string, true);
|
||||
if (yyval.defaults == NULL) {
|
||||
@@ -1376,7 +1375,7 @@ case 21:
|
||||
}
|
||||
break;
|
||||
case 22:
|
||||
#line 257 "gram.y"
|
||||
#line 256 "gram.y"
|
||||
{
|
||||
yyval.defaults = new_default(yyvsp[-2].string, yyvsp[0].string, '+');
|
||||
if (yyval.defaults == NULL) {
|
||||
@@ -1386,7 +1385,7 @@ case 22:
|
||||
}
|
||||
break;
|
||||
case 23:
|
||||
#line 264 "gram.y"
|
||||
#line 263 "gram.y"
|
||||
{
|
||||
yyval.defaults = new_default(yyvsp[-2].string, yyvsp[0].string, '-');
|
||||
if (yyval.defaults == NULL) {
|
||||
@@ -1396,14 +1395,14 @@ case 23:
|
||||
}
|
||||
break;
|
||||
case 25:
|
||||
#line 274 "gram.y"
|
||||
#line 273 "gram.y"
|
||||
{
|
||||
HLTQ_CONCAT(yyvsp[-2].privilege, yyvsp[0].privilege, entries);
|
||||
yyval.privilege = yyvsp[-2].privilege;
|
||||
}
|
||||
break;
|
||||
case 26:
|
||||
#line 280 "gram.y"
|
||||
#line 279 "gram.y"
|
||||
{
|
||||
struct privilege *p = calloc(1, sizeof(*p));
|
||||
if (p == NULL) {
|
||||
@@ -1418,21 +1417,21 @@ case 26:
|
||||
}
|
||||
break;
|
||||
case 27:
|
||||
#line 294 "gram.y"
|
||||
#line 293 "gram.y"
|
||||
{
|
||||
yyval.member = yyvsp[0].member;
|
||||
yyval.member->negated = false;
|
||||
}
|
||||
break;
|
||||
case 28:
|
||||
#line 298 "gram.y"
|
||||
#line 297 "gram.y"
|
||||
{
|
||||
yyval.member = yyvsp[0].member;
|
||||
yyval.member->negated = true;
|
||||
}
|
||||
break;
|
||||
case 29:
|
||||
#line 304 "gram.y"
|
||||
#line 303 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(yyvsp[0].string, ALIAS);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -1442,7 +1441,7 @@ case 29:
|
||||
}
|
||||
break;
|
||||
case 30:
|
||||
#line 311 "gram.y"
|
||||
#line 310 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(NULL, ALL);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -1452,7 +1451,7 @@ case 30:
|
||||
}
|
||||
break;
|
||||
case 31:
|
||||
#line 318 "gram.y"
|
||||
#line 317 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(yyvsp[0].string, NETGROUP);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -1462,7 +1461,7 @@ case 31:
|
||||
}
|
||||
break;
|
||||
case 32:
|
||||
#line 325 "gram.y"
|
||||
#line 324 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(yyvsp[0].string, NTWKADDR);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -1472,7 +1471,7 @@ case 32:
|
||||
}
|
||||
break;
|
||||
case 33:
|
||||
#line 332 "gram.y"
|
||||
#line 331 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(yyvsp[0].string, WORD);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -1482,7 +1481,7 @@ case 33:
|
||||
}
|
||||
break;
|
||||
case 35:
|
||||
#line 342 "gram.y"
|
||||
#line 341 "gram.y"
|
||||
{
|
||||
struct cmndspec *prev;
|
||||
prev = HLTQ_LAST(yyvsp[-2].cmndspec, cmndspec, entries);
|
||||
@@ -1536,7 +1535,7 @@ case 35:
|
||||
}
|
||||
break;
|
||||
case 36:
|
||||
#line 395 "gram.y"
|
||||
#line 394 "gram.y"
|
||||
{
|
||||
struct cmndspec *cs = calloc(1, sizeof(*cs));
|
||||
if (cs == NULL) {
|
||||
@@ -1588,7 +1587,7 @@ case 36:
|
||||
}
|
||||
break;
|
||||
case 37:
|
||||
#line 446 "gram.y"
|
||||
#line 445 "gram.y"
|
||||
{
|
||||
yyval.digest = new_digest(SUDO_DIGEST_SHA224, yyvsp[0].string);
|
||||
if (yyval.digest == NULL) {
|
||||
@@ -1598,7 +1597,7 @@ case 37:
|
||||
}
|
||||
break;
|
||||
case 38:
|
||||
#line 453 "gram.y"
|
||||
#line 452 "gram.y"
|
||||
{
|
||||
yyval.digest = new_digest(SUDO_DIGEST_SHA256, yyvsp[0].string);
|
||||
if (yyval.digest == NULL) {
|
||||
@@ -1608,7 +1607,7 @@ case 38:
|
||||
}
|
||||
break;
|
||||
case 39:
|
||||
#line 460 "gram.y"
|
||||
#line 459 "gram.y"
|
||||
{
|
||||
yyval.digest = new_digest(SUDO_DIGEST_SHA384, yyvsp[0].string);
|
||||
if (yyval.digest == NULL) {
|
||||
@@ -1618,7 +1617,7 @@ case 39:
|
||||
}
|
||||
break;
|
||||
case 40:
|
||||
#line 467 "gram.y"
|
||||
#line 466 "gram.y"
|
||||
{
|
||||
yyval.digest = new_digest(SUDO_DIGEST_SHA512, yyvsp[0].string);
|
||||
if (yyval.digest == NULL) {
|
||||
@@ -1628,13 +1627,13 @@ case 40:
|
||||
}
|
||||
break;
|
||||
case 41:
|
||||
#line 476 "gram.y"
|
||||
#line 475 "gram.y"
|
||||
{
|
||||
yyval.member = yyvsp[0].member;
|
||||
}
|
||||
break;
|
||||
case 42:
|
||||
#line 479 "gram.y"
|
||||
#line 478 "gram.y"
|
||||
{
|
||||
if (yyvsp[0].member->type != COMMAND) {
|
||||
sudoerserror(N_("a digest requires a path name"));
|
||||
@@ -1646,75 +1645,75 @@ case 42:
|
||||
}
|
||||
break;
|
||||
case 43:
|
||||
#line 490 "gram.y"
|
||||
#line 489 "gram.y"
|
||||
{
|
||||
yyval.member = yyvsp[0].member;
|
||||
yyval.member->negated = false;
|
||||
}
|
||||
break;
|
||||
case 44:
|
||||
#line 494 "gram.y"
|
||||
#line 493 "gram.y"
|
||||
{
|
||||
yyval.member = yyvsp[0].member;
|
||||
yyval.member->negated = true;
|
||||
}
|
||||
break;
|
||||
case 45:
|
||||
#line 500 "gram.y"
|
||||
#line 499 "gram.y"
|
||||
{
|
||||
yyval.string = yyvsp[0].string;
|
||||
}
|
||||
break;
|
||||
case 46:
|
||||
#line 505 "gram.y"
|
||||
#line 504 "gram.y"
|
||||
{
|
||||
yyval.string = yyvsp[0].string;
|
||||
}
|
||||
break;
|
||||
case 47:
|
||||
#line 509 "gram.y"
|
||||
#line 508 "gram.y"
|
||||
{
|
||||
yyval.string = yyvsp[0].string;
|
||||
}
|
||||
break;
|
||||
case 48:
|
||||
#line 514 "gram.y"
|
||||
#line 513 "gram.y"
|
||||
{
|
||||
yyval.string = yyvsp[0].string;
|
||||
}
|
||||
break;
|
||||
case 49:
|
||||
#line 519 "gram.y"
|
||||
#line 518 "gram.y"
|
||||
{
|
||||
yyval.string = yyvsp[0].string;
|
||||
}
|
||||
break;
|
||||
case 50:
|
||||
#line 524 "gram.y"
|
||||
#line 523 "gram.y"
|
||||
{
|
||||
yyval.string = yyvsp[0].string;
|
||||
}
|
||||
break;
|
||||
case 51:
|
||||
#line 528 "gram.y"
|
||||
#line 527 "gram.y"
|
||||
{
|
||||
yyval.string = yyvsp[0].string;
|
||||
}
|
||||
break;
|
||||
case 52:
|
||||
#line 533 "gram.y"
|
||||
#line 532 "gram.y"
|
||||
{
|
||||
yyval.runas = NULL;
|
||||
}
|
||||
break;
|
||||
case 53:
|
||||
#line 536 "gram.y"
|
||||
#line 535 "gram.y"
|
||||
{
|
||||
yyval.runas = yyvsp[-1].runas;
|
||||
}
|
||||
break;
|
||||
case 54:
|
||||
#line 541 "gram.y"
|
||||
#line 540 "gram.y"
|
||||
{
|
||||
yyval.runas = calloc(1, sizeof(struct runascontainer));
|
||||
if (yyval.runas != NULL) {
|
||||
@@ -1732,7 +1731,7 @@ case 54:
|
||||
}
|
||||
break;
|
||||
case 55:
|
||||
#line 556 "gram.y"
|
||||
#line 555 "gram.y"
|
||||
{
|
||||
yyval.runas = calloc(1, sizeof(struct runascontainer));
|
||||
if (yyval.runas == NULL) {
|
||||
@@ -1744,7 +1743,7 @@ case 55:
|
||||
}
|
||||
break;
|
||||
case 56:
|
||||
#line 565 "gram.y"
|
||||
#line 564 "gram.y"
|
||||
{
|
||||
yyval.runas = calloc(1, sizeof(struct runascontainer));
|
||||
if (yyval.runas == NULL) {
|
||||
@@ -1756,7 +1755,7 @@ case 56:
|
||||
}
|
||||
break;
|
||||
case 57:
|
||||
#line 574 "gram.y"
|
||||
#line 573 "gram.y"
|
||||
{
|
||||
yyval.runas = calloc(1, sizeof(struct runascontainer));
|
||||
if (yyval.runas == NULL) {
|
||||
@@ -1768,7 +1767,7 @@ case 57:
|
||||
}
|
||||
break;
|
||||
case 58:
|
||||
#line 583 "gram.y"
|
||||
#line 582 "gram.y"
|
||||
{
|
||||
yyval.runas = calloc(1, sizeof(struct runascontainer));
|
||||
if (yyval.runas != NULL) {
|
||||
@@ -1786,13 +1785,13 @@ case 58:
|
||||
}
|
||||
break;
|
||||
case 59:
|
||||
#line 600 "gram.y"
|
||||
#line 599 "gram.y"
|
||||
{
|
||||
init_options(&yyval.options);
|
||||
}
|
||||
break;
|
||||
case 60:
|
||||
#line 603 "gram.y"
|
||||
#line 602 "gram.y"
|
||||
{
|
||||
yyval.options.notbefore = parse_gentime(yyvsp[0].string);
|
||||
free(yyvsp[0].string);
|
||||
@@ -1803,7 +1802,7 @@ case 60:
|
||||
}
|
||||
break;
|
||||
case 61:
|
||||
#line 611 "gram.y"
|
||||
#line 610 "gram.y"
|
||||
{
|
||||
yyval.options.notafter = parse_gentime(yyvsp[0].string);
|
||||
free(yyvsp[0].string);
|
||||
@@ -1814,7 +1813,7 @@ case 61:
|
||||
}
|
||||
break;
|
||||
case 62:
|
||||
#line 619 "gram.y"
|
||||
#line 618 "gram.y"
|
||||
{
|
||||
yyval.options.timeout = parse_timeout(yyvsp[0].string);
|
||||
free(yyvsp[0].string);
|
||||
@@ -1828,7 +1827,7 @@ case 62:
|
||||
}
|
||||
break;
|
||||
case 63:
|
||||
#line 630 "gram.y"
|
||||
#line 629 "gram.y"
|
||||
{
|
||||
#ifdef HAVE_SELINUX
|
||||
free(yyval.options.role);
|
||||
@@ -1837,7 +1836,7 @@ case 63:
|
||||
}
|
||||
break;
|
||||
case 64:
|
||||
#line 636 "gram.y"
|
||||
#line 635 "gram.y"
|
||||
{
|
||||
#ifdef HAVE_SELINUX
|
||||
free(yyval.options.type);
|
||||
@@ -1846,7 +1845,7 @@ case 64:
|
||||
}
|
||||
break;
|
||||
case 65:
|
||||
#line 642 "gram.y"
|
||||
#line 641 "gram.y"
|
||||
{
|
||||
#ifdef HAVE_PRIV_SET
|
||||
free(yyval.options.privs);
|
||||
@@ -1855,7 +1854,7 @@ case 65:
|
||||
}
|
||||
break;
|
||||
case 66:
|
||||
#line 648 "gram.y"
|
||||
#line 647 "gram.y"
|
||||
{
|
||||
#ifdef HAVE_PRIV_SET
|
||||
free(yyval.options.limitprivs);
|
||||
@@ -1864,97 +1863,97 @@ case 66:
|
||||
}
|
||||
break;
|
||||
case 67:
|
||||
#line 656 "gram.y"
|
||||
#line 655 "gram.y"
|
||||
{
|
||||
TAGS_INIT(yyval.tag);
|
||||
}
|
||||
break;
|
||||
case 68:
|
||||
#line 659 "gram.y"
|
||||
#line 658 "gram.y"
|
||||
{
|
||||
yyval.tag.nopasswd = true;
|
||||
}
|
||||
break;
|
||||
case 69:
|
||||
#line 662 "gram.y"
|
||||
#line 661 "gram.y"
|
||||
{
|
||||
yyval.tag.nopasswd = false;
|
||||
}
|
||||
break;
|
||||
case 70:
|
||||
#line 665 "gram.y"
|
||||
#line 664 "gram.y"
|
||||
{
|
||||
yyval.tag.noexec = true;
|
||||
}
|
||||
break;
|
||||
case 71:
|
||||
#line 668 "gram.y"
|
||||
#line 667 "gram.y"
|
||||
{
|
||||
yyval.tag.noexec = false;
|
||||
}
|
||||
break;
|
||||
case 72:
|
||||
#line 671 "gram.y"
|
||||
#line 670 "gram.y"
|
||||
{
|
||||
yyval.tag.setenv = true;
|
||||
}
|
||||
break;
|
||||
case 73:
|
||||
#line 674 "gram.y"
|
||||
#line 673 "gram.y"
|
||||
{
|
||||
yyval.tag.setenv = false;
|
||||
}
|
||||
break;
|
||||
case 74:
|
||||
#line 677 "gram.y"
|
||||
#line 676 "gram.y"
|
||||
{
|
||||
yyval.tag.log_input = true;
|
||||
}
|
||||
break;
|
||||
case 75:
|
||||
#line 680 "gram.y"
|
||||
#line 679 "gram.y"
|
||||
{
|
||||
yyval.tag.log_input = false;
|
||||
}
|
||||
break;
|
||||
case 76:
|
||||
#line 683 "gram.y"
|
||||
#line 682 "gram.y"
|
||||
{
|
||||
yyval.tag.log_output = true;
|
||||
}
|
||||
break;
|
||||
case 77:
|
||||
#line 686 "gram.y"
|
||||
#line 685 "gram.y"
|
||||
{
|
||||
yyval.tag.log_output = false;
|
||||
}
|
||||
break;
|
||||
case 78:
|
||||
#line 689 "gram.y"
|
||||
#line 688 "gram.y"
|
||||
{
|
||||
yyval.tag.follow = true;
|
||||
}
|
||||
break;
|
||||
case 79:
|
||||
#line 692 "gram.y"
|
||||
#line 691 "gram.y"
|
||||
{
|
||||
yyval.tag.follow = false;
|
||||
}
|
||||
break;
|
||||
case 80:
|
||||
#line 695 "gram.y"
|
||||
#line 694 "gram.y"
|
||||
{
|
||||
yyval.tag.send_mail = true;
|
||||
}
|
||||
break;
|
||||
case 81:
|
||||
#line 698 "gram.y"
|
||||
#line 697 "gram.y"
|
||||
{
|
||||
yyval.tag.send_mail = false;
|
||||
}
|
||||
break;
|
||||
case 82:
|
||||
#line 703 "gram.y"
|
||||
#line 702 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(NULL, ALL);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -1964,7 +1963,7 @@ case 82:
|
||||
}
|
||||
break;
|
||||
case 83:
|
||||
#line 710 "gram.y"
|
||||
#line 709 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(yyvsp[0].string, ALIAS);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -1974,7 +1973,7 @@ case 83:
|
||||
}
|
||||
break;
|
||||
case 84:
|
||||
#line 717 "gram.y"
|
||||
#line 716 "gram.y"
|
||||
{
|
||||
struct sudo_command *c = calloc(1, sizeof(*c));
|
||||
if (c == NULL) {
|
||||
@@ -1992,7 +1991,7 @@ case 84:
|
||||
}
|
||||
break;
|
||||
case 87:
|
||||
#line 738 "gram.y"
|
||||
#line 737 "gram.y"
|
||||
{
|
||||
const char *s;
|
||||
s = alias_add(yyvsp[-2].string, HOSTALIAS, sudoers, this_lineno, yyvsp[0].member);
|
||||
@@ -2003,14 +2002,14 @@ case 87:
|
||||
}
|
||||
break;
|
||||
case 89:
|
||||
#line 749 "gram.y"
|
||||
#line 748 "gram.y"
|
||||
{
|
||||
HLTQ_CONCAT(yyvsp[-2].member, yyvsp[0].member, entries);
|
||||
yyval.member = yyvsp[-2].member;
|
||||
}
|
||||
break;
|
||||
case 92:
|
||||
#line 759 "gram.y"
|
||||
#line 758 "gram.y"
|
||||
{
|
||||
const char *s;
|
||||
s = alias_add(yyvsp[-2].string, CMNDALIAS, sudoers, this_lineno, yyvsp[0].member);
|
||||
@@ -2021,14 +2020,14 @@ case 92:
|
||||
}
|
||||
break;
|
||||
case 94:
|
||||
#line 770 "gram.y"
|
||||
#line 769 "gram.y"
|
||||
{
|
||||
HLTQ_CONCAT(yyvsp[-2].member, yyvsp[0].member, entries);
|
||||
yyval.member = yyvsp[-2].member;
|
||||
}
|
||||
break;
|
||||
case 97:
|
||||
#line 780 "gram.y"
|
||||
#line 779 "gram.y"
|
||||
{
|
||||
const char *s;
|
||||
s = alias_add(yyvsp[-2].string, RUNASALIAS, sudoers, this_lineno, yyvsp[0].member);
|
||||
@@ -2039,7 +2038,7 @@ case 97:
|
||||
}
|
||||
break;
|
||||
case 100:
|
||||
#line 794 "gram.y"
|
||||
#line 793 "gram.y"
|
||||
{
|
||||
const char *s;
|
||||
s = alias_add(yyvsp[-2].string, USERALIAS, sudoers, this_lineno, yyvsp[0].member);
|
||||
@@ -2050,28 +2049,28 @@ case 100:
|
||||
}
|
||||
break;
|
||||
case 102:
|
||||
#line 805 "gram.y"
|
||||
#line 804 "gram.y"
|
||||
{
|
||||
HLTQ_CONCAT(yyvsp[-2].member, yyvsp[0].member, entries);
|
||||
yyval.member = yyvsp[-2].member;
|
||||
}
|
||||
break;
|
||||
case 103:
|
||||
#line 811 "gram.y"
|
||||
#line 810 "gram.y"
|
||||
{
|
||||
yyval.member = yyvsp[0].member;
|
||||
yyval.member->negated = false;
|
||||
}
|
||||
break;
|
||||
case 104:
|
||||
#line 815 "gram.y"
|
||||
#line 814 "gram.y"
|
||||
{
|
||||
yyval.member = yyvsp[0].member;
|
||||
yyval.member->negated = true;
|
||||
}
|
||||
break;
|
||||
case 105:
|
||||
#line 821 "gram.y"
|
||||
#line 820 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(yyvsp[0].string, ALIAS);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -2081,7 +2080,7 @@ case 105:
|
||||
}
|
||||
break;
|
||||
case 106:
|
||||
#line 828 "gram.y"
|
||||
#line 827 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(NULL, ALL);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -2091,7 +2090,7 @@ case 106:
|
||||
}
|
||||
break;
|
||||
case 107:
|
||||
#line 835 "gram.y"
|
||||
#line 834 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(yyvsp[0].string, NETGROUP);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -2101,7 +2100,7 @@ case 107:
|
||||
}
|
||||
break;
|
||||
case 108:
|
||||
#line 842 "gram.y"
|
||||
#line 841 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(yyvsp[0].string, USERGROUP);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -2111,7 +2110,7 @@ case 108:
|
||||
}
|
||||
break;
|
||||
case 109:
|
||||
#line 849 "gram.y"
|
||||
#line 848 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(yyvsp[0].string, WORD);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -2121,28 +2120,28 @@ case 109:
|
||||
}
|
||||
break;
|
||||
case 111:
|
||||
#line 859 "gram.y"
|
||||
#line 858 "gram.y"
|
||||
{
|
||||
HLTQ_CONCAT(yyvsp[-2].member, yyvsp[0].member, entries);
|
||||
yyval.member = yyvsp[-2].member;
|
||||
}
|
||||
break;
|
||||
case 112:
|
||||
#line 865 "gram.y"
|
||||
#line 864 "gram.y"
|
||||
{
|
||||
yyval.member = yyvsp[0].member;
|
||||
yyval.member->negated = false;
|
||||
}
|
||||
break;
|
||||
case 113:
|
||||
#line 869 "gram.y"
|
||||
#line 868 "gram.y"
|
||||
{
|
||||
yyval.member = yyvsp[0].member;
|
||||
yyval.member->negated = true;
|
||||
}
|
||||
break;
|
||||
case 114:
|
||||
#line 875 "gram.y"
|
||||
#line 874 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(yyvsp[0].string, ALIAS);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -2152,7 +2151,7 @@ case 114:
|
||||
}
|
||||
break;
|
||||
case 115:
|
||||
#line 882 "gram.y"
|
||||
#line 881 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(NULL, ALL);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -2162,7 +2161,7 @@ case 115:
|
||||
}
|
||||
break;
|
||||
case 116:
|
||||
#line 889 "gram.y"
|
||||
#line 888 "gram.y"
|
||||
{
|
||||
yyval.member = new_member(yyvsp[0].string, WORD);
|
||||
if (yyval.member == NULL) {
|
||||
@@ -2171,7 +2170,7 @@ case 116:
|
||||
}
|
||||
}
|
||||
break;
|
||||
#line 2122 "gram.c"
|
||||
#line 2121 "gram.c"
|
||||
}
|
||||
yyssp -= yym;
|
||||
yystate = *yyssp;
|
||||
|
Reference in New Issue
Block a user