summaryrefslogtreecommitdiff
path: root/modules/pam_echo/pam_echo.c
diff options
context:
space:
mode:
authorSteve Langasek <vorlon@debian.org>2019-01-22 14:54:11 -0800
committerSteve Langasek <vorlon@debian.org>2019-01-22 14:54:11 -0800
commitf00afb1ef201b2eef7f9ddbe5a0c6ca802cf49bb (patch)
tree402838c53047b0e21466a653ae88d86a8e4b7b65 /modules/pam_echo/pam_echo.c
parent795badba7f95e737f979917859cd32c9bd47bcad (diff)
parent1cad9fb2a0d729c5b5e5aa7297c521df7d5a2d33 (diff)
New upstream version 1.3.0
Diffstat (limited to 'modules/pam_echo/pam_echo.c')
-rw-r--r--modules/pam_echo/pam_echo.c27
1 files changed, 9 insertions, 18 deletions
diff --git a/modules/pam_echo/pam_echo.c b/modules/pam_echo/pam_echo.c
index 043ff703..8e3d35f9 100644
--- a/modules/pam_echo/pam_echo.c
+++ b/modules/pam_echo/pam_echo.c
@@ -180,16 +180,23 @@ pam_echo (pam_handle_t *pamh, int flags, int argc, const char **argv)
/* load file into message buffer. */
if ((fstat (fd, &st) < 0) || !st.st_size)
- return PAM_IGNORE;
+ {
+ close (fd);
+ return PAM_IGNORE;
+ }
mtmp = malloc (st.st_size + 1);
if (!mtmp)
- return PAM_BUF_ERR;
+ {
+ close (fd);
+ return PAM_BUF_ERR;
+ }
if (pam_modutil_read (fd, mtmp, st.st_size) == -1)
{
pam_syslog (pamh, LOG_ERR, "Error while reading %s: %m", file);
free (mtmp);
+ close (fd);
return PAM_IGNORE;
}
@@ -254,19 +261,3 @@ pam_sm_chauthtok (pam_handle_t *pamh, int flags, int argc,
else
return PAM_IGNORE;
}
-
-#ifdef PAM_STATIC
-
-/* static module data */
-
-struct pam_module _pam_echo_modstruct = {
- "pam_echo",
- pam_sm_authenticate,
- pam_sm_setcred,
- pam_sm_acct_mgmt,
- pam_sm_open_session,
- pam_sm_close_session,
- pam_sm_chauthtok,
-};
-
-#endif