From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Price Date: Thu, 14 Jan 2021 11:56:34 +0000 Subject: [Cluster-devel] [PATCH gfs2-utils] mkfs.gfs2: make are you sure EOF happy In-Reply-To: <20210113173646.43173-1-aahringo@redhat.com> References: <20210113173646.43173-1-aahringo@redhat.com> Message-ID: <51fe8a57-60af-e581-3eab-2380bfdbee87@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit On 13/01/2021 17:36, Alexander Aring wrote: > This patch adds a check for getline() error, as the manpage states out > that -1 is returned in EOF case we answer such case and possible > other errors with no. If you currently press ctrl-d during this question > an endless loop of asking this question over and over again will occur. > However this patch changes to handle errors with no and prints a newline > so the user have a new clean shell prompt afterwards. If getline reads > zero characters .e.g '\n', the question is if we are sure is asked again. > > Signed-off-by: Alexander Aring > --- > gfs2/mkfs/main_mkfs.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) Applied, thanks Alex. Andy > > diff --git a/gfs2/mkfs/main_mkfs.c b/gfs2/mkfs/main_mkfs.c > index 5e34ca1f..e6fc6532 100644 > --- a/gfs2/mkfs/main_mkfs.c > +++ b/gfs2/mkfs/main_mkfs.c > @@ -528,9 +528,14 @@ static int are_you_sure(void) > `locale -k noexpr` */ > printf( _("Are you sure you want to proceed? [y/n] ")); > ret = getline(&line, &len, stdin); > + if (ret < 0) { > + printf("\n"); > + free(line); > + return 0; > + } > res = rpmatch(line); > free(line); > - if (ret <= 0) > + if (ret == 0) > continue; > if (res == 1) /* Yes */ > return 1; >