summaryrefslogtreecommitdiff
path: root/bin/ed
diff options
context:
space:
mode:
authorFlorian Obser <florian@cvs.openbsd.org>2019-06-27 06:41:37 +0000
committerFlorian Obser <florian@cvs.openbsd.org>2019-06-27 06:41:37 +0000
commit21d1ccf81beb6d7a50c2137a3e28f25c89094c67 (patch)
treef13a4abef99804def54c7f9f9b6fd533a339e76a /bin/ed
parent4a91562dc6683317f04f7573c2f7e61bd09c639c (diff)
Be precise in checking for errors. pclose(3) returns -1 and fclose(3)
EOF in case of errors, not any negative number. EOF corner case spotted while reviewing a much bigger diff by deraadt OK deraadt, millert
Diffstat (limited to 'bin/ed')
-rw-r--r--bin/ed/io.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/bin/ed/io.c b/bin/ed/io.c
index e9d6e1c3007..673a2cad9f9 100644
--- a/bin/ed/io.c
+++ b/bin/ed/io.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: io.c,v 1.22 2018/06/04 13:29:07 martijn Exp $ */
+/* $OpenBSD: io.c,v 1.23 2019/06/27 06:41:36 florian Exp $ */
/* $NetBSD: io.c,v 1.2 1995/03/21 09:04:43 cgd Exp $ */
/* io.c: This file contains the i/o routines for the ed line editor */
@@ -58,7 +58,7 @@ read_file(char *fn, int n)
return ERR;
} else if ((size = read_stream(fp, n)) < 0)
return ERR;
- else if (((*fn == '!') ? pclose(fp) : fclose(fp)) < 0) {
+ else if ((*fn == '!') ? pclose(fp) == -1 : fclose(fp) == EOF) {
perror(fn);
seterrmsg("cannot close input file");
return ERR;
@@ -160,7 +160,7 @@ write_file(char *fn, char *mode, int n, int m)
return ERR;
} else if ((size = write_stream(fp, n, m)) < 0)
return ERR;
- else if (((*fn == '!') ? pclose(fp) : fclose(fp)) < 0) {
+ else if ((*fn == '!') ? pclose(fp) == -1 : fclose(fp) == EOF) {
perror(fn);
seterrmsg("cannot close output file");
return ERR;