8729726
diff -up sudo-1.8.8/plugins/sudoers/auth/pam.c.clangbugs sudo-1.8.8/plugins/sudoers/auth/pam.c
8729726
--- sudo-1.8.8/plugins/sudoers/auth/pam.c.clangbugs	2013-09-30 23:41:07.899529555 +0200
8729726
+++ sudo-1.8.8/plugins/sudoers/auth/pam.c	2013-09-30 23:41:58.988707761 +0200
8729726
@@ -246,6 +246,7 @@ sudo_pam_begin_session(struct passwd *pw
8729726
 	    (void) pam_end(pamh, *pam_status | PAM_DATA_SILENT);
8729726
 	    pamh = NULL;
8729726
 	    status = AUTH_FAILURE;
8729726
+	    goto done;
8729726
 	}
8729726
     }
8729726
 
8729726
diff -up sudo-1.8.8/plugins/sudoers/sssd.c.clangbugs sudo-1.8.8/plugins/sudoers/sssd.c
8729726
--- sudo-1.8.8/plugins/sudoers/sssd.c.clangbugs	2013-09-30 23:44:20.404200629 +0200
8729726
+++ sudo-1.8.8/plugins/sudoers/sssd.c	2013-09-30 23:49:05.998194738 +0200
8729726
@@ -310,11 +310,10 @@ static int sudo_sss_close(struct sudo_ns
8729726
     debug_decl(sudo_sss_close, SUDO_DEBUG_SSSD);
8729726
 
8729726
     if (nss && nss->handle) {
8729726
-	handle = nss->handle;
8729726
-	dlclose(handle->ssslib);
8729726
+	    handle = nss->handle;
8729726
+	    dlclose(handle->ssslib);
8729726
+	    efree(nss->handle);
8729726
     }
8729726
-
8729726
-    efree(nss->handle);
8729726
     debug_return_int(0);
8729726
 }
8729726
 
8729726
@@ -705,17 +704,21 @@ sudo_sss_result_get(struct sudo_nss *nss
8729726
 	sudo_sss_result_filterp, _SUDO_SSS_FILTER_INCLUDE, NULL);
8729726
 
8729726
     if (f_sss_result != NULL) {
8729726
-	if (f_sss_result->num_rules > 0) {
8729726
-	    if (state != NULL) {
8729726
-		sudo_debug_printf(SUDO_DEBUG_DEBUG, "state |= HOSTMATCH");
8729726
-		*state |= _SUDO_SSS_STATE_HOSTMATCH;
8729726
+	    if (f_sss_result->num_rules > 0) {
8729726
+		    if (state != NULL) {
8729726
+			    sudo_debug_printf(SUDO_DEBUG_DEBUG, "state |= HOSTMATCH");
8729726
+			    *state |= _SUDO_SSS_STATE_HOSTMATCH;
8729726
+		    }
8729726
 	    }
8729726
-	}
8729726
-    }
8729726
 
8729726
-    sudo_debug_printf(SUDO_DEBUG_DEBUG,
8729726
-	"u_sss_result=(%p, %u) => f_sss_result=(%p, %u)", u_sss_result,
8729726
-	u_sss_result->num_rules, f_sss_result, f_sss_result->num_rules);
8729726
+	    sudo_debug_printf(SUDO_DEBUG_DEBUG,
8729726
+	                      "u_sss_result=(%p, %u) => f_sss_result=(%p, %u)", u_sss_result,
8729726
+	                      u_sss_result->num_rules, f_sss_result, f_sss_result->num_rules);
8729726
+    } else {
8729726
+	    sudo_debug_printf(SUDO_DEBUG_DEBUG,
8729726
+	                      "u_sss_result=(%p, %u) => f_sss_result=NULL",
8729726
+	                      u_sss_result, u_sss_result->num_rules);
8729726
+    }
8729726
 
8729726
     handle->fn_free_result(u_sss_result);
8729726