sudo/sudo-1.8.5-remove-source-when-open-failed.patch
Daniel Kopecek 049d9661dd added patches that fix & improve SSSD support (thanks to pbrezina@redhat.com)
- re-enabled SSSD support
- removed libsss_sudo dependency
2012-07-26 09:32:44 +02:00

34 lines
1.2 KiB
Diff

diff -rup original/plugins/sudoers/sudoers.c new/plugins/sudoers/sudoers.c
--- original/plugins/sudoers/sudoers.c 2012-07-19 12:13:31.292479203 +0200
+++ new/plugins/sudoers/sudoers.c 2012-07-19 12:14:02.898844521 +0200
@@ -145,6 +145,7 @@ sudoers_policy_open(unsigned int version
volatile int sources = 0;
sigaction_t sa;
struct sudo_nss *nss;
+ struct sudo_nss *nss_next;
debug_decl(sudoers_policy_open, SUDO_DEBUG_PLUGIN)
sudo_version = version;
@@ -201,12 +202,15 @@ sudoers_policy_open(unsigned int version
set_perms(PERM_ROOT);
/* Open and parse sudoers, set global defaults */
- tq_foreach_fwd(snl, nss) {
- if (nss->open(nss) == 0 && nss->parse(nss) == 0) {
- sources++;
- if (nss->setdefs(nss) != 0)
- log_error(NO_STDERR, _("problem with defaults entries"));
- }
+ for (nss = snl->first; nss != NULL; nss = nss_next) {
+ nss_next = nss->next;
+ if (nss->open(nss) == 0 && nss->parse(nss) == 0) {
+ sources++;
+ if (nss->setdefs(nss) != 0)
+ log_error(NO_STDERR, _("problem with defaults entries"));
+ } else {
+ tq_remove(snl, nss);
+ }
}
if (sources == 0) {
warningx(_("no valid sudoers sources found, quitting"));