Author: baggins                      Date: Sat Feb 10 20:17:46 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- add failok option to pam_exec to ignore exit code from command

---- Files affected:
SOURCES:
   pam-exec-failok.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/pam-exec-failok.patch
diff -u /dev/null SOURCES/pam-exec-failok.patch:1.1
--- /dev/null   Sat Feb 10 21:17:46 2007
+++ SOURCES/pam-exec-failok.patch       Sat Feb 10 21:17:41 2007
@@ -0,0 +1,91 @@
+--- Linux-PAM-0.99.7.1/modules/pam_exec/pam_exec.8.xml~        2006-06-09 
18:44:06.000000000 +0200
++++ Linux-PAM-0.99.7.1/modules/pam_exec/pam_exec.8.xml 2007-02-09 
22:35:07.000000000 +0100
+@@ -25,6 +25,9 @@
+         seteuid
+       </arg>
+       <arg choice="opt">
++        failok
++      </arg>
++      <arg choice="opt">
+         log=<replaceable>file</replaceable>
+       </arg>
+       <arg choice="plain">
+@@ -90,6 +93,18 @@
+           </listitem>
+         </varlistentry>
+ 
++        <varlistentry>
++          <term>
++            <option>failok</option>
++          </term>
++          <listitem>
++            <para>
++              Return success regardles of the exit code returned
++              by the command.
++            </para>
++          </listitem>
++        </varlistentry>
++
+       </variablelist>
+ 
+     </para>
+--- Linux-PAM-0.99.7.1/modules/pam_exec/pam_exec.c.orig        2007-02-09 
22:30:39.000000000 +0100
++++ Linux-PAM-0.99.7.1/modules/pam_exec/pam_exec.c     2007-02-09 
22:37:07.000000000 +0100
+@@ -64,6 +64,7 @@
+ {
+   int debug = 0;
+   int call_setuid = 0;
++  int fail_ok = 0;
+   int optargc;
+   const char *logfile = NULL;
+   pid_t pid;
+@@ -85,6 +86,8 @@
+       logfile = &argv[optargc][4];
+       else if (strcasecmp (argv[optargc], "seteuid") == 0)
+       call_setuid = 1;
++      else if (strcasecmp (argv[optargc], "failok") == 0)
++      fail_ok = 1;
+       else
+       break; /* Unknown option, assume program to execute. */
+     }
+@@ -115,26 +118,32 @@
+           {
+             pam_syslog (pamh, LOG_ERR, "%s failed: exit code %d",
+                         argv[optargc], WEXITSTATUS(status));
+-            pam_error (pamh, _("%s failed: exit code %d"),
+-                       argv[optargc], WEXITSTATUS(status));
++            if (fail_ok == 0)
++                pam_error (pamh, _("%s failed: exit code %d"),
++                           argv[optargc], WEXITSTATUS(status));
+           }
+         else if (WIFSIGNALED(status))
+           {
+             pam_syslog (pamh, LOG_ERR, "%s failed: caught signal %d%s",
+                         argv[optargc], WTERMSIG(status),
+                         WCOREDUMP(status) ? " (core dumped)" : "");
+-            pam_error (pamh, _("%s failed: caught signal %d%s"),
+-                       argv[optargc], WTERMSIG(status),
+-                       WCOREDUMP(status) ? " (core dumped)" : "");
++            if (fail_ok == 0)
++                pam_error (pamh, _("%s failed: caught signal %d%s"),
++                           argv[optargc], WTERMSIG(status),
++                           WCOREDUMP(status) ? " (core dumped)" : "");
+           }
+         else
+           {
+             pam_syslog (pamh, LOG_ERR, "%s failed: unknown status 0x%x",
+                         argv[optargc], status);
+-            pam_error (pamh, _("%s failed: unknown status 0x%x"),
+-                       argv[optargc], status);
++            if (fail_ok == 0)
++                pam_error (pamh, _("%s failed: unknown status 0x%x"),
++                           argv[optargc], status);
+           }
+-        return PAM_SYSTEM_ERR;
++        if (fail_ok == 0)
++          return PAM_SYSTEM_ERR;
++        else
++          return PAM_SUCCESS;
+       }
+       return PAM_SUCCESS;
+     }
================================================================
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to