summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2001-05-08 20:05:44 +0000
committerBen Lindstrom <mouring@eviladmin.org>2001-05-08 20:05:44 +0000
commite487d84e03615256aca61431bb9b515db8c2b6e6 (patch)
tree9a7d666929fd7fc13f7c3a0ead59d88c7de24396
parent253effb61d3f7917549ee859fa93c9e4a1f15ede (diff)
- markus@cvs.openbsd.org 2001/05/06 21:23:31
[cli.c] cli_read() fails to catch SIGINT + overflow; from obdb@zzlevo.net
-rw-r--r--ChangeLog8
-rw-r--r--cli.c12
2 files changed, 15 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index f028bb64..b206502d 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 4adde4be..6a582569 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)