2
0
mirror of https://github.com/sudo-project/sudo.git synced 2025-08-31 22:35:10 +00:00

Add struct sudoers_parser_config and pass it to init_parser().

This struct contains parser configuration such as the sudoers file
uid/gid/mode and parse flags such as verbose, strict and recovery.
This commit is contained in:
Todd C. Miller
2023-05-08 17:03:31 -06:00
parent fb9d0d79a7
commit 9d7c30c5a8
15 changed files with 604 additions and 477 deletions

View File

@@ -295,7 +295,11 @@ set_perms(int perm)
}
break;
case PERM_SUDOERS:
case PERM_SUDOERS: {
const uid_t sudoers_uid = sudoers_file_uid();
const gid_t sudoers_gid = sudoers_file_gid();
const mode_t sudoers_mode = sudoers_file_mode();
state->gidlist = ostate->gidlist;
sudo_gidlist_addref(state->gidlist);
@@ -334,6 +338,7 @@ set_perms(int perm)
goto bad;
}
break;
}
case PERM_TIMESTAMP:
state->gidlist = ostate->gidlist;
@@ -619,7 +624,11 @@ set_perms(int perm)
}
break;
case PERM_SUDOERS:
case PERM_SUDOERS: {
const uid_t sudoers_uid = sudoers_file_uid();
const gid_t sudoers_gid = sudoers_file_gid();
const mode_t sudoers_mode = sudoers_file_mode();
state->gidlist = ostate->gidlist;
sudo_gidlist_addref(state->gidlist);
@@ -667,6 +676,7 @@ set_perms(int perm)
}
}
break;
}
case PERM_TIMESTAMP:
state->gidlist = ostate->gidlist;
@@ -1012,7 +1022,11 @@ set_perms(int perm)
}
break;
case PERM_SUDOERS:
case PERM_SUDOERS: {
const uid_t sudoers_uid = sudoers_file_uid();
const gid_t sudoers_gid = sudoers_file_gid();
const mode_t sudoers_mode = sudoers_file_mode();
state->gidlist = ostate->gidlist;
sudo_gidlist_addref(state->gidlist);
@@ -1047,6 +1061,7 @@ set_perms(int perm)
goto bad;
}
break;
}
case PERM_TIMESTAMP:
state->gidlist = ostate->gidlist;
@@ -1321,7 +1336,11 @@ set_perms(int perm)
}
break;
case PERM_SUDOERS:
case PERM_SUDOERS: {
const uid_t sudoers_uid = sudoers_file_uid();
const gid_t sudoers_gid = sudoers_file_gid();
const mode_t sudoers_mode = sudoers_file_mode();
state->gidlist = ostate->gidlist;
sudo_gidlist_addref(state->gidlist);
@@ -1355,6 +1374,7 @@ set_perms(int perm)
goto bad;
}
break;
}
case PERM_TIMESTAMP:
state->gidlist = ostate->gidlist;