summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrillig <rillig@NetBSD.org>2021-02-22 16:28:20 +0000
committerCameron Katri <me@cameronkatri.com>2021-04-13 15:28:33 -0400
commitc6dcb4c432995d92e9e40b8dfce534fa4e47dd0b (patch)
tree7c9264ba1f33269842e388f069080ede75b69568
parente7cd658820ba2c7119b98f1c8959b6fbe8e379b7 (diff)
downloadbsdgames-darwin-c6dcb4c432995d92e9e40b8dfce534fa4e47dd0b.tar.gz
bsdgames-darwin-c6dcb4c432995d92e9e40b8dfce534fa4e47dd0b.tar.zst
bsdgames-darwin-c6dcb4c432995d92e9e40b8dfce534fa4e47dd0b.zip
cgram: properly handle input errors
On both NetBSD and Cygwin, a missing /usr/bin/fortune would previously continue since popen does not return an error (as /bin/sh is found and can be executed), so the next chance to catch an error is pclose. At that point, the shell has already printed an informative error message about what happened (or what didn't happen), so that cgram does not need to print an error by itself.
-rw-r--r--cgram/cgram.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/cgram/cgram.c b/cgram/cgram.c
index 9379dcfe..3d33d85a 100644
--- a/cgram/cgram.c
+++ b/cgram/cgram.c
@@ -1,4 +1,4 @@
-/* $NetBSD: cgram.c,v 1.11 2021/02/21 22:21:56 rillig Exp $ */
+/* $NetBSD: cgram.c,v 1.12 2021/02/22 16:28:20 rillig Exp $ */
/*-
* Copyright (c) 2013, 2021 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: cgram.c,v 1.11 2021/02/21 22:21:56 rillig Exp $");
+__RCSID("$NetBSD: cgram.c,v 1.12 2021/02/22 16:28:20 rillig Exp $");
#endif
#include <assert.h>
@@ -227,7 +227,8 @@ readquote(void)
for (int i = 0; i < extent_y; i++)
extent_x = imax(extent_x, (int)lines.v[i].len);
- pclose(f);
+ if (pclose(f) != 0)
+ exit(1); /* error message must come from child process */
}
static void