3bbffd
From b429ea18b1c9c8953df5169c6a453b4255a6f23d Mon Sep 17 00:00:00 2001
3bbffd
From: Iker Pedrosa <ikerpedrosam@gmail.com>
3bbffd
Date: Thu, 27 Feb 2020 11:48:47 +0100
3bbffd
Subject: [PATCH] pam_tty_audit: if kernel audit is disabled return PAM_IGNORE
3bbffd
3bbffd
If kernel audit is disabled the socket open will return
3bbffd
EPROTONOSUPPORT.
3bbffd
Return PAM_IGNORE from pam_tty_audit and log a warning
3bbffd
in this situation so login is not blocked by the module.
3bbffd
---
3bbffd
 modules/pam_tty_audit/pam_tty_audit.c | 8 ++++++++
3bbffd
 1 file changed, 8 insertions(+)
3bbffd
3bbffd
diff --git a/modules/pam_tty_audit/pam_tty_audit.c b/modules/pam_tty_audit/pam_tty_audit.c
3bbffd
index 7dbcada2..589c60a2 100644
3bbffd
--- a/modules/pam_tty_audit/pam_tty_audit.c
3bbffd
+++ b/modules/pam_tty_audit/pam_tty_audit.c
3bbffd
@@ -351,6 +351,14 @@ pam_sm_open_session (pam_handle_t *pamh, int flags, int argc, const char **argv)
3bbffd
 
3bbffd
   fd = nl_open ();
3bbffd
   if (fd == -1
3bbffd
+      && errno == EPROTONOSUPPORT)
3bbffd
+    {
3bbffd
+      pam_syslog (pamh, LOG_WARNING, "unable to open audit socket, audit not "
3bbffd
+                  "supported; tty_audit skipped");
3bbffd
+      free (old_status);
3bbffd
+      return PAM_IGNORE;
3bbffd
+    }
3bbffd
+  else if (fd == -1
3bbffd
       || nl_send (fd, AUDIT_TTY_GET, 0, NULL, 0) != 0
3bbffd
       || nl_recv (fd, AUDIT_TTY_GET, old_status, sizeof (*old_status)) != 0)
3bbffd
     {
3bbffd
-- 
3bbffd
2.25.2
3bbffd