From cc08ed0e280f8ba3a26fbd9469e64704aaef75af Mon Sep 17 00:00:00 2001 From: Mathieu Trudel-Lapierre Date: Fri, 29 Sep 2017 11:05:05 -0400 Subject: [PATCH] buildid: Check the return values of write() calls Signed-off-by: Mathieu Trudel-Lapierre --- buildid.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/buildid.c b/buildid.c index b27aa1f..f213f3b 100644 --- a/buildid.c +++ b/buildid.c @@ -113,6 +113,7 @@ static void handle_one(char *f) char *b = NULL; size_t sz; uint8_t *data; + ssize_t written; if (!strcmp(f, "-")) { fd = STDIN_FILENO; @@ -132,10 +133,14 @@ static void handle_one(char *f) b = alloca(sz * 2 + 1); data2hex(data, sz, b); if (b) { - write(1, f, strlen(f)); - write(1, " ", 1); - write(1, b, strlen(b)); - write(1, "\n", 1); + written = write(1, f, strlen(f)); + if (written < 0) + errx(1, "Error writing build id"); + written = write(1, " ", 1); + written = write(1, b, strlen(b)); + if (written < 0) + errx(1, "Error writing build id"); + written = write(1, "\n", 1); } } elf_end(elf);