From 5a567057abbd9b6acb8c440f9d81120e8bd6e5c6 Mon Sep 17 00:00:00 2001 From: Sascha Kruse Date: Mon, 10 Dec 2012 17:45:14 +0100 Subject: [PATCH] i3-dump-log/main.c: error handling for write(...) --- i3-dump-log/main.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/i3-dump-log/main.c b/i3-dump-log/main.c index 4a11d218..852a5cf7 100644 --- a/i3-dump-log/main.c +++ b/i3-dump-log/main.c @@ -42,14 +42,19 @@ static int check_for_wrap(void) { /* The log wrapped. Print the remaining content and reset walk to the top * of the log. */ wrap_count = header->wrap_count; - write(STDOUT_FILENO, walk, ((logbuffer + header->offset_last_wrap) - walk)); + const int len = (logbuffer + header->offset_last_wrap) - walk; + if (write(STDOUT_FILENO, walk, len) != len) + err(EXIT_FAILURE, "write()"); walk = logbuffer + sizeof(i3_shmlog_header); return 1; } static void print_till_end(void) { check_for_wrap(); - int n = write(STDOUT_FILENO, walk, ((logbuffer + header->offset_next_write) - walk)); + const int len = (logbuffer + header->offset_next_write) - walk; + const int n = write(STDOUT_FILENO, walk, len); + if (len != n) + err(EXIT_FAILURE, "write()"); if (n > 0) { walk += n; } -- 2.39.2