sudo/sudo-1.8.5-sssd-handle-sss_ret-correctly.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

44 lines
1.4 KiB
Diff

diff -rup original/plugins/sudoers/sssd.c new/plugins/sudoers/sssd.c
--- original/plugins/sudoers/sssd.c 2012-07-18 13:17:53.026208728 +0200
+++ new/plugins/sudoers/sssd.c 2012-07-18 13:35:59.780623153 +0200
@@ -239,6 +239,14 @@ static int sudo_sss_setdefs(struct sudo_
debug_return_int(-1);
}
+ if (sss_error == ENOENT) {
+ sudo_debug_printf(2, "The user was not found in SSSD.");
+ debug_return_int(-1);
+ } else if(sss_error != 0) {
+ sudo_debug_printf(2, "sss_error=%u\n", sss_error);
+ debug_return_int(-1);
+ }
+
for (i = 0; i < sss_result->num_rules; ++i) {
sudo_debug_printf(1, "Parsing cn=defaults, %d/%d", i, sss_result->num_rules);
sss_rule = sss_result->rules + i;
@@ -515,7 +523,7 @@ static struct sss_sudo_result *sudo_sss_
}
break;
case ENOENT:
- sudo_debug_printf(2, "No result.");
+ sudo_debug_printf(2, "The user was not found in SSSD.");
default:
sudo_debug_printf(2, "sss_error=%u\n", sss_error);
debug_return_ptr(NULL);
@@ -901,6 +909,14 @@ static int sudo_sss_display_defaults(str
goto done;
}
+ if (sss_error == ENOENT) {
+ sudo_debug_printf(2, "The user was not found in SSSD.");
+ goto done;
+ } else if(sss_error != 0) {
+ sudo_debug_printf(2, "sss_error=%u\n", sss_error);
+ goto done;
+ }
+
handle->pw = pw;
for (i = 0; i < sss_result->num_rules; ++i) {