From e487d84e03615256aca61431bb9b515db8c2b6e6 Mon Sep 17 00:00:00 2001 From: Ben Lindstrom Date: Tue, 8 May 2001 20:05:44 +0000 Subject: [PATCH] - markus@cvs.openbsd.org 2001/05/06 21:23:31 [cli.c] cli_read() fails to catch SIGINT + overflow; from obdb@zzlevo.net --- ChangeLog | 8 +++++++- cli.c | 12 ++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index f028bb643..b206502d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +20010509 + - OpenBSD CVS Sync + - markus@cvs.openbsd.org 2001/05/06 21:23:31 + [cli.c] + cli_read() fails to catch SIGINT + overflow; from obdb@zzlevo.net + 20010508 - (bal) Fixed configure test for USE_SIA. @@ -5357,4 +5363,4 @@ - Wrote replacements for strlcpy and mkdtemp - Released 1.0pre1 -$Id: ChangeLog,v 1.1205 2001/05/07 12:54:26 mouring Exp $ +$Id: ChangeLog,v 1.1206 2001/05/08 20:05:44 mouring Exp $ diff --git a/cli.c b/cli.c index 4adde4bea..6a5825690 100644 --- a/cli.c +++ b/cli.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cli.c,v 1.12 2001/05/06 17:52:07 mouring Exp $ */ +/* $OpenBSD: cli.c,v 1.13 2001/05/06 21:23:31 markus Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. @@ -25,7 +25,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: cli.c,v 1.12 2001/05/06 17:52:07 mouring Exp $"); +RCSID("$OpenBSD: cli.c,v 1.13 2001/05/06 21:23:31 markus Exp $"); #include "xmalloc.h" #include "log.h" @@ -141,15 +141,19 @@ cli_read(char* buf, int size, int echo) while (ch != '\n') { n = read(cli_input, &ch, 1); + if (intr) + break; if (n == -1 && (errno == EAGAIN || errno == EINTR)) continue; if (n != 1) break; - if (ch == '\n' || intr != 0) + if (ch == '\n') break; - if (i < size) + if (i < size - 1) buf[i++] = ch; } + if (intr) + i = 0; buf[i] = '\0'; if (!echo)