s->len = lseek(fd, 0, SEEK_END);
lseek(fd, 0, SEEK_SET);
s->contents = malloc(s->len);
- read(fd, s->contents, s->len);
+ if (read(fd, s->contents, s->len) != s->len)
+ err(1, "Failed to save %zu bytes", (size_t)s->len);
lseek(fd, s->off, SEEK_SET);
return s;
}
struct saved_file *next = s->next;
lseek(s->fd, 0, SEEK_SET);
- write(s->fd, s->contents, s->len);
- ftruncate(s->fd, s->len);
+ if (write(s->fd, s->contents, s->len) != s->len)
+ err(1, "Failed to restore %zu bytes", (size_t)s->len);
+ if (ftruncate(s->fd, s->len) != 0)
+ err(1, "Failed to trim file to length %zu",
+ (size_t)s->len);
free(s->contents);
lseek(s->fd, s->off, SEEK_SET);
free(s);
signal(SIGUSR1, SIG_IGN);
sprintf(str, "xterm -e gdb /proc/%d/exe %d &",
getpid(), getpid());
- system(str);
- sleep(5);
+ if (system(str) == 0)
+ sleep(5);
}
}
plan_tests(12);
- pipe(pfd);
+ if (pipe(pfd))
+ abort();
fd = failtest_open("run-open-scratchpad", "run-open.c", 1,
O_RDWR|O_CREAT, 0600);
if (fd == -1) {
/* We are the child: write error code for parent to check. */
err = errno;
- write(pfd[1], &err, sizeof(err));
+ if (write(pfd[1], &err, sizeof(err)) != sizeof(err))
+ abort();
failtest_exit(0);
}
/* Check it is read-write. */
close(pfd[1]);
/* Two-arg open. */
- pipe(pfd);
+ if (pipe(pfd) != 0)
+ abort();
fd = failtest_open("run-open-scratchpad", "run-open.c", 1, O_RDONLY);
if (fd == -1) {
/* We are the child: write error code for parent to check. */
err = errno;
- write(pfd[1], &err, sizeof(err));
+ if (write(pfd[1], &err, sizeof(err)) != sizeof(err))
+ abort();
failtest_exit(0);
}
/* Check it is read-only. */
/* Child will fail, ignore. */
if (fd < 0)
failtest_exit(0);
- write(fd, buf, strlen(buf));
+ if (write(fd, buf, strlen(buf)) != strlen(buf))
+ abort();
ok1(lseek(fd, 0, SEEK_CUR) == strlen(buf));
p = failtest_malloc(100, __FILE__, __LINE__);