summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/pam_exec/pam_exec.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/modules/pam_exec/pam_exec.c b/modules/pam_exec/pam_exec.c
index 12c44444..5ab96303 100644
--- a/modules/pam_exec/pam_exec.c
+++ b/modules/pam_exec/pam_exec.c
@@ -360,9 +360,19 @@ call_exec (const char *pam_type, pam_handle_t *pamh,
logfile);
_exit (err);
}
+ if (i != STDOUT_FILENO)
+ {
+ if (dup2 (i, STDOUT_FILENO) == -1)
+ {
+ int err = errno;
+ pam_syslog (pamh, LOG_ERR, "dup2 failed: %m");
+ _exit (err);
+ }
+ close (i);
+ }
if (asprintf (&buffer, "*** %s", ctime (&tm)) > 0)
{
- pam_modutil_write (i, buffer, strlen (buffer));
+ pam_modutil_write (STDOUT_FILENO, buffer, strlen (buffer));
free (buffer);
}
}