summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwl <wl>2013-02-02 19:05:09 +0000
committerwl <wl>2013-02-02 19:05:09 +0000
commitdae1d0e512d37d4b0a8c725691f6021bd5d56847 (patch)
tree65de54131fc6f5a6cd7f3ed169cf39f9859e7535
parentc9d85816d4319650c003e371f5438a29777a0ac6 (diff)
downloadgroff-dae1d0e512d37d4b0a8c725691f6021bd5d56847.tar.gz
[grohtml] Don't ignore return value of `dup'.
* src/preproc/html/pushback.cpp (pushBackBuffer::pushBackBuffer, pushBackBuffer::~pushBackBuffer): Abort if `dup' fails.
-rw-r--r--ChangeLog7
-rw-r--r--src/preproc/html/pushback.cpp7
2 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index a6e0f864..07cef209 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2013-02-02 Gilles Espinasse <g.esp@free.fr>
+
+ [grohtml] Don't ignore return value of `dup'.
+
+ * src/preproc/html/pushback.cpp (pushBackBuffer::pushBackBuffer,
+ pushBackBuffer::~pushBackBuffer): Abort if `dup' fails.
+
2013-01-30 Bernd Warken <groff-bernd.warken-72@web.de>
* tmac/groff_man.man: Fix wrong connection for tbl(1).
diff --git a/src/preproc/html/pushback.cpp b/src/preproc/html/pushback.cpp
index 60ca9ff7..562669e7 100644
--- a/src/preproc/html/pushback.cpp
+++ b/src/preproc/html/pushback.cpp
@@ -71,6 +71,9 @@ pushBackBuffer::pushBackBuffer (char *filename)
lineNo = 1;
if (strcmp(filename, "") != 0) {
stdIn = dup(0);
+ if (stdIn<0) {
+ sys_fatal("dup stdin");
+ }
close(0);
if (open(filename, O_RDONLY) != 0) {
sys_fatal("when trying to open file");
@@ -87,7 +90,9 @@ pushBackBuffer::~pushBackBuffer ()
}
close(0);
/* restore stdin in file descriptor 0 */
- dup(stdIn);
+ if (dup(stdIn)<0) {
+ sys_fatal("restore stdin");
+ }
close(stdIn);
}