patch-auth__sudo_auth.c   [plain text]


--- auth/sudo_auth.c.orig	Fri Oct 15 22:34:13 2004
+++ auth/sudo_auth.c	Fri Oct 15 22:37:43 2004
@@ -110,11 +110,13 @@
     (void) sigaction(SIGTSTP, &sa, &osa);
 
     /* Make sure we have at least one auth method. */
-    if (auth_switch[0].name == NULL)
+    if (auth_switch[0].name == NULL) {
+    	audit_fail(pw, "No authentication methods");
     	log_error(0, "%s  %s %s",
 	    "There are no authentication methods compiled into sudo!",
 	    "If you want to turn off authentication, use the",
 	    "--disable-authentication configure option.");
+    }
 
     /* Set FLAG_ONEANDONLY if there is only one auth method. */
     if (auth_switch[1].name == NULL)
@@ -129,8 +131,10 @@
 	    status = (auth->init)(pw, &prompt, auth);
 	    if (status == AUTH_FAILURE)
 		CLR(auth->flags, FLAG_CONFIGURED);
-	    else if (status == AUTH_FATAL)	/* XXX log */
+	    else if (status == AUTH_FATAL)	/* XXX log */ {
+		audit_fail(pw, "Auth Failure");
 		exit(1);		/* assume error msg already printed */
+	    }
 
 	    if (NEEDS_USER(auth))
 		set_perms(PERM_ROOT);
@@ -147,8 +151,10 @@
 		status = (auth->setup)(pw, &prompt, auth);
 		if (status == AUTH_FAILURE)
 		    CLR(auth->flags, FLAG_CONFIGURED);
-		else if (status == AUTH_FATAL)	/* XXX log */
+		else if (status == AUTH_FATAL)	/* XXX log */ {
+		    audit_fail(pw, "Auth Failure");
 		    exit(1);		/* assume error msg already printed */
+		}
 
 		if (NEEDS_USER(auth))
 		    set_perms(PERM_ROOT);
@@ -189,8 +195,10 @@
 
 	/* Exit loop on nil password, but give it a chance to match first. */
 	if (nil_pw) {
-	    if (counter == def_passwd_tries)
+	    if (counter == def_passwd_tries) {
+		audit_fail(pw, "password attempt limit reached");
 		exit(1);
+	    }
 	    else
 		break;
 	}
@@ -206,8 +214,10 @@
 		set_perms(PERM_USER);
 
 	    status = (auth->cleanup)(pw, auth);
-	    if (status == AUTH_FATAL)	/* XXX log */
+	    if (status == AUTH_FATAL)	/* XXX log */ {
+		audit_fail(pw, "Auth Failure");
 		exit(1);		/* assume error msg already printed */
+	    }
 
 	    if (NEEDS_USER(auth))
 		set_perms(PERM_ROOT);
@@ -223,10 +233,12 @@
 		flags = 0;
 	    else
 		flags = NO_MAIL;
+	    audit_fail(pw, "Incorrect password");
 	    log_error(flags, "%d incorrect password attempt%s",
 		def_passwd_tries - counter,
 		(def_passwd_tries - counter == 1) ? "" : "s");
 	case AUTH_FATAL:
+	    audit_fail(pw, "Auth failure");
 	    exit(1);
     }
     /* NOTREACHED */