From 44d82778aa62d14bb199faa4fd62a94cd473a5ae Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 10 Nov 2009 19:06:11 +0000 Subject: [PATCH] Check for errors when writing the dump file to standard output, so that we'll terminate promptly in cases of (for instance) a disk filling up. git-svn-id: svn://svn.tartarus.org/sgt/agedu@8744 cda61777-01e9-0310-a592-d414129be87e --- agedu.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/agedu.c b/agedu.c index add92ac..b253f18 100644 --- a/agedu.c +++ b/agedu.c @@ -56,14 +56,18 @@ struct ctx { static void dump_line(const char *pathname, const struct trie_file *tf) { const char *p; - printf("%llu %llu ", tf->size, tf->atime); + if (printf("%llu %llu ", tf->size, tf->atime) < 0) goto error; for (p = pathname; *p; p++) { - if (*p >= ' ' && *p < 127 && *p != '%') - putchar(*p); - else - printf("%%%02x", (unsigned char)*p); + if (*p >= ' ' && *p < 127 && *p != '%') { + if (putchar(*p) == EOF) goto error; + } else { + if (printf("%%%02x", (unsigned char)*p) < 0) goto error; + } } - putchar('\n'); + if (putchar('\n') == EOF) goto error; + return; + error: + fatal("standard output: %s", strerror(errno)); } static int gotdata(void *vctx, const char *pathname, const STRUCT_STAT *st) -- 2.11.0