aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Stoeckmann <tobias@stoeckmann.org>2024-01-02 22:26:26 +0100
committerDmitry V. Levin <ldv@strace.io>2024-01-03 17:28:06 +0000
commitc98956b836429d88dd2980567343c4e945348c80 (patch)
treee7faec2d7291e7c788be092997c18732b1f0fefa
parent13dc0a7754d7978c6fc69ca2e0021e9193a8b0aa (diff)
downloadpam-c98956b836429d88dd2980567343c4e945348c80.tar.gz
pam-c98956b836429d88dd2980567343c4e945348c80.tar.bz2
pam-c98956b836429d88dd2980567343c4e945348c80.zip
pam_exec: use getline
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
-rw-r--r--modules/pam_exec/pam_exec.c6
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);
}