38 lines
1.1 KiB
Diff
38 lines
1.1 KiB
Diff
From 05907d0d9e7c85f33e168feab1eb36b464425054 Mon Sep 17 00:00:00 2001
|
|
From: Lorenzo Beretta <vc.net.loreb@gmail.com>
|
|
Date: Mon, 25 Oct 2021 14:06:00 +0200
|
|
Subject: [PATCH] chfn: flush stdout before reading stdin and fix uninitialized
|
|
variable
|
|
|
|
Same problem as described in https://github.com/karelzak/util-linux/pull/1481
|
|
|
|
Signed-off-by: Lorenzo Beretta <vc.net.loreb@gmail.com>
|
|
---
|
|
login-utils/chfn.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/login-utils/chfn.c b/login-utils/chfn.c
|
|
index 2508e14c9..ece5cdce0 100644
|
|
--- a/login-utils/chfn.c
|
|
+++ b/login-utils/chfn.c
|
|
@@ -227,7 +227,7 @@ static char *ask_new_field(struct chfn_control *ctl, const char *question,
|
|
char *def_val)
|
|
{
|
|
int len;
|
|
- char *buf;
|
|
+ char *buf = NULL; /* leave initialized to NULL or getline segfaults */
|
|
#ifndef HAVE_LIBREADLINE
|
|
size_t dummy = 0;
|
|
#endif
|
|
@@ -242,6 +242,7 @@ static char *ask_new_field(struct chfn_control *ctl, const char *question,
|
|
if ((buf = readline(" ")) == NULL)
|
|
#else
|
|
putchar(' ');
|
|
+ fflush(stdout);
|
|
if (getline(&buf, &dummy, stdin) < 0)
|
|
#endif
|
|
errx(EXIT_FAILURE, _("Aborted."));
|
|
--
|
|
2.33.0
|
|
|