summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Blake <ebb9@byu.net>2009-07-20 06:54:18 -0600
committerEric Blake <ebb9@byu.net>2009-07-20 07:14:21 -0600
commitaf75eb36c890595b686532dc35cf090c4879038f (patch)
tree77704aae58de57d7a888505b2b70063bb15fc61d
parent5fa9c079fbe226113280ac86401b432d9c0e7981 (diff)
downloadm4-af75eb36c890595b686532dc35cf090c4879038f.tar.gz
Avoid cygwin 1.7 crash with closed stdout.
* gnulib: Update. * doc/m4.texinfo (Command line files): Add test; regression introduced 2008-07-17. * NEWS: Document the change. Signed-off-by: Eric Blake <ebb9@byu.net>
-rw-r--r--ChangeLog6
-rw-r--r--NEWS3
-rw-r--r--doc/m4.texinfo13
m---------gnulib0
4 files changed, 22 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 3bfa1363..ea2a8794 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2009-07-20 Eric Blake <ebb9@byu.net>
+ Avoid cygwin 1.7 crash with closed stdout.
+ * gnulib: Update.
+ * doc/m4.texinfo (Command line files): Add test; regression
+ introduced 2008-07-17.
+ * NEWS: Document the change.
+
A status of 127 does not always imply esyscmd failure.
* src/builtin.c (m4_esyscmd): Silence gnulib message; regression
introduced 2009-03-05.
diff --git a/NEWS b/NEWS
index 485a143c..f3f65d42 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,9 @@ Software Foundation, Inc.
* Noteworthy changes in Version 1.4.14 (2009-??-??) [stable]
Released by Eric Blake, based on git version 1.4.13.*
+** Fix regression introduced in 1.4.12 where executing with stdout closed
+ could crash m4 on exit on some platforms.
+
** Fix regression introduced in 1.4.13 in the `esyscmd' builtin, where
a child status of 127 made m4 print a spurious message to stderr.
diff --git a/doc/m4.texinfo b/doc/m4.texinfo
index eb76109e..6c03ce70 100644
--- a/doc/m4.texinfo
+++ b/doc/m4.texinfo
@@ -960,6 +960,19 @@ options.
@example
@error{}m4: cannot open `Makefile/': Not a directory
@end example
+
+@comment Test that closed stderr does not cause a crash.
+
+@example
+ifdef(`__unix__', ,
+ `errprint(` skipping: syscmd does not have unix semantics
+')m4exit(`77')')dnl
+changequote(`[', `]')dnl
+syscmd([echo | ']__program__[' >&-])dnl
+@error{}m4: write error: Bad file descriptor
+sysval
+@result{}1
+@end example
@end ignore
@node Syntax
diff --git a/gnulib b/gnulib
-Subproject e3e47d1710f6154c54b65c5d9dd5d56516a893d
+Subproject d19ab0454ad81cd702f17864f082aefcbea6687