diff options
author | Sam Hartman <hartmans@debian.org> | 2024-12-02 09:55:34 -0700 |
---|---|---|
committer | Sam Hartman <hartmans@debian.org> | 2024-12-02 09:55:34 -0700 |
commit | 4f3cfaf827bfa42a239c255092a128a3a02198bf (patch) | |
tree | eac7f023f043739b79b2a51bd68c3006acb12964 /modules/pam_echo/pam_echo.c | |
parent | 6408d4b1baff9a7e58fd66e1d1c0871be0823777 (diff) | |
parent | 7c9fb6472dcfae34ddbf4fbc9ecfafae2cf173c3 (diff) | |
download | pam-4f3cfaf827bfa42a239c255092a128a3a02198bf.tar.gz pam-4f3cfaf827bfa42a239c255092a128a3a02198bf.tar.bz2 pam-4f3cfaf827bfa42a239c255092a128a3a02198bf.zip |
Update upstream source from tag 'upstream/1.7.0'
Update to upstream version '1.7.0'
with Debian dir 0b3cd490884352e14273caeca2f05c6a525499fa
Diffstat (limited to 'modules/pam_echo/pam_echo.c')
-rw-r--r-- | modules/pam_echo/pam_echo.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/modules/pam_echo/pam_echo.c b/modules/pam_echo/pam_echo.c index 181aeb4c..5a882028 100644 --- a/modules/pam_echo/pam_echo.c +++ b/modules/pam_echo/pam_echo.c @@ -33,14 +33,13 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if defined(HAVE_CONFIG_H) #include "config.h" -#endif #include <errno.h> #include <stdio.h> #include <fcntl.h> #include <string.h> +#include <stdint.h> #include <stdlib.h> #include <unistd.h> #include <limits.h> @@ -182,6 +181,12 @@ pam_echo (pam_handle_t *pamh, int flags, int argc, const char **argv) return PAM_IGNORE; } + if ((uintmax_t) st.st_size > (uintmax_t) INT_MAX) + { + close (fd); + return PAM_BUF_ERR; + } + mtmp = malloc (st.st_size + 1); if (!mtmp) { @@ -189,7 +194,7 @@ pam_echo (pam_handle_t *pamh, int flags, int argc, const char **argv) return PAM_BUF_ERR; } - if (pam_modutil_read (fd, mtmp, st.st_size) == -1) + if (pam_modutil_read (fd, mtmp, st.st_size) != st.st_size) { pam_syslog (pamh, LOG_ERR, "Error while reading %s: %m", file); free (mtmp); |