aboutsummaryrefslogtreecommitdiffstats
path: root/builtin.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2016-03-22 07:53:46 +0200
committerArnold D. Robbins <arnold@skeeve.com>2016-04-04 06:35:54 +0300
commit1662deffd0ced2464647ebff013be4d5ad398594 (patch)
tree0989e76235086552860c6b132dd064e18fe32bf6 /builtin.c
parent124c3594cb65748ce858dcc55eadd7c831cee041 (diff)
downloadegawk-1662deffd0ced2464647ebff013be4d5ad398594.tar.gz
egawk-1662deffd0ced2464647ebff013be4d5ad398594.tar.bz2
egawk-1662deffd0ced2464647ebff013be4d5ad398594.zip
Add fatal error for print if 2 way pipe write end closed.
Diffstat (limited to 'builtin.c')
-rw-r--r--builtin.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/builtin.c b/builtin.c
index 784c8190..c4d3d3a1 100644
--- a/builtin.c
+++ b/builtin.c
@@ -2208,8 +2208,12 @@ do_print_rec(int nargs, int redirtype)
if (redirtype != 0) {
redir_exp = TOP();
rp = redirect(redir_exp, redirtype, & errflg);
- if (rp != NULL)
+ if (rp != NULL) {
+ if ((rp->flag & RED_TWOWAY) != 0 && rp->output.fp == NULL) {
+ fatal(_("print: attempt to write to closed write end of two-way pipe"));
+ }
fp = rp->output.fp;
+ }
DEREF(redir_exp);
decr_sp();
} else