X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftools%2Ftdbtorture.c;h=52cab665d1393e63a8839dc3ad17619915db4a54;hp=89c2609967b425a4bdd8d71c8763fc4949576d2e;hb=d5bb8e8d1c6731a3db234393c8d196b3b50084f2;hpb=7a0402de904de11843f9eb8a4bf8469206426c34 diff --git a/ccan/tdb2/tools/tdbtorture.c b/ccan/tdb2/tools/tdbtorture.c index 89c26099..52cab665 100644 --- a/ccan/tdb2/tools/tdbtorture.c +++ b/ccan/tdb2/tools/tdbtorture.c @@ -64,10 +64,11 @@ static void segv_handler(int signal, siginfo_t *info, void *p) { char string[100]; - sprintf(string, "%u: death at %p (map_ptr %p, map_size %llu)\n", - getpid(), info->si_addr, db->map_ptr, db->map_size); - write(2, string, strlen(string)); - sleep(60); + sprintf(string, "%u: death at %p (map_ptr %p, map_size %zu)\n", + getpid(), info->si_addr, db->file->map_ptr, + (size_t)db->file->map_size); + if (write(2, string, strlen(string)) > 0) + sleep(60); _exit(11); } @@ -243,7 +244,8 @@ static void usage(void) static void send_count_and_suicide(int sig) { /* This ensures our successor can continue where we left off. */ - write(count_pipe, &loopnum, sizeof(loopnum)); + if (write(count_pipe, &loopnum, sizeof(loopnum)) != sizeof(loopnum)) + exit(2); /* This gives a unique signature. */ kill(getpid(), SIGUSR2); } @@ -433,8 +435,11 @@ int main(int argc, char * const *argv) || WTERMSIG(status) == SIGUSR1) { /* SIGUSR2 means they wrote to pipe. */ if (WTERMSIG(status) == SIGUSR2) { - read(pfds[0], &done[j], - sizeof(done[j])); + if (read(pfds[0], &done[j], + sizeof(done[j])) + != sizeof(done[j])) + err(1, + "Short read from child?"); } pids[j] = fork(); if (pids[j] == 0)