diff options
author | Tobias Stoeckmann <tobias@stoeckmann.org> | 2024-01-02 22:26:26 +0100 |
---|---|---|
committer | Dmitry V. Levin <ldv@strace.io> | 2024-01-03 17:28:06 +0000 |
commit | c98956b836429d88dd2980567343c4e945348c80 (patch) | |
tree | e7faec2d7291e7c788be092997c18732b1f0fefa /modules/pam_exec/pam_exec.c | |
parent | 13dc0a7754d7978c6fc69ca2e0021e9193a8b0aa (diff) | |
download | pam-c98956b836429d88dd2980567343c4e945348c80.tar.gz pam-c98956b836429d88dd2980567343c4e945348c80.tar.bz2 pam-c98956b836429d88dd2980567343c4e945348c80.zip |
pam_exec: use getline
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Diffstat (limited to 'modules/pam_exec/pam_exec.c')
-rw-r--r-- | modules/pam_exec/pam_exec.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/modules/pam_exec/pam_exec.c b/modules/pam_exec/pam_exec.c index 24c99a32..653fe3aa 100644 --- a/modules/pam_exec/pam_exec.c +++ b/modules/pam_exec/pam_exec.c @@ -268,9 +268,10 @@ call_exec (const char *pam_type, pam_handle_t *pamh, if (use_stdout) { - char buf[4096]; + char *buf = NULL; + size_t n = 0; close(stdout_fds[1]); - while (fgets(buf, sizeof(buf), stdout_file) != NULL) + while (getline(&buf, &n, stdout_file) != -1) { size_t len; len = strlen(buf); @@ -278,6 +279,7 @@ call_exec (const char *pam_type, pam_handle_t *pamh, buf[len-1] = '\0'; pam_info(pamh, "%s", buf); } + free(buf); fclose(stdout_file); } |