summaryrefslogtreecommitdiffstats
path: root/term-utils/script.c
diff options
context:
space:
mode:
authorKarel Zak2014-01-16 14:44:37 +0100
committerKarel Zak2014-01-16 14:44:37 +0100
commitc6fca22e3a4dde709f4b12875b69761536a2891d (patch)
tree4e3d7d0c47242dee5225e7e75338213c5fd45ff9 /term-utils/script.c
parentscript: fix inconsistent -q, use poll() rather then O_NONBLOCK (diff)
downloadkernel-qcow2-util-linux-c6fca22e3a4dde709f4b12875b69761536a2891d.tar.gz
kernel-qcow2-util-linux-c6fca22e3a4dde709f4b12875b69761536a2891d.tar.xz
kernel-qcow2-util-linux-c6fca22e3a4dde709f4b12875b69761536a2891d.zip
script: use all-io.h to make the code more robust
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'term-utils/script.c')
-rw-r--r--term-utils/script.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/term-utils/script.c b/term-utils/script.c
index 73dd208cc..a4c2e0cec 100644
--- a/term-utils/script.c
+++ b/term-utils/script.c
@@ -65,6 +65,7 @@
#include "nls.h"
#include "c.h"
#include "ttyutils.h"
+#include "all-io.h"
#if defined(HAVE_LIBUTIL) && defined(HAVE_PTY_H)
# include <pty.h>
@@ -316,8 +317,7 @@ doinput(void) {
while (die == 0) {
if ((cc = read(STDIN_FILENO, ibuf, BUFSIZ)) > 0) {
- ssize_t wrt = write(master, ibuf, cc);
- if (wrt < 0) {
+ if (write_all(master, ibuf, cc)) {
warn (_("write failed"));
fail();
}
@@ -353,7 +353,7 @@ doinput(void) {
*/
int c = DEF_EOF;
- if (write(master, &c, 1) < 0) {
+ if (write_all(master, &c, 1)) {
warn (_("write failed"));
fail();
}
@@ -404,8 +404,6 @@ dooutput(FILE *timingfd) {
char obuf[BUFSIZ];
struct timeval tv;
double oldtime=time(NULL), newtime;
- ssize_t wrt;
- ssize_t fwrt;
int errsv = 0;
close(STDIN_FILENO);
@@ -438,15 +436,13 @@ dooutput(FILE *timingfd) {
fprintf(timingfd, "%f %zd\n", newtime - oldtime, cc);
oldtime = newtime;
}
- fwrt = fwrite(obuf, 1, cc, fscript);
- if (fwrt < cc) {
+ if (fwrite_all(obuf, 1, cc, fscript)) {
warn (_("cannot write script file"));
fail();
}
if (fflg)
fflush(fscript);
- wrt = write(STDOUT_FILENO, obuf, cc);
- if (wrt < 0) {
+ if (write_all(STDOUT_FILENO, obuf, cc)) {
warn (_("write failed"));
fail();
}