diff options
author | David Leadbeater <dgl@dgl.cx> | 2014-07-06 21:52:03 +0100 |
---|---|---|
committer | David Leadbeater <dgl@dgl.cx> | 2014-07-06 21:52:03 +0100 |
commit | dac67a567d8c1ffc63a38f94349ea37d2dc4f2c1 (patch) | |
tree | 47553ef10a36ebda7fa79ce434a7d7611a271d51 | |
parent | 85d9fa1922a5f408dd40f18287f01135dd826e4d (diff) | |
download | irssi-dac67a567d8c1ffc63a38f94349ea37d2dc4f2c1.zip |
Check return values from some syscalls and warn if they fail
-rw-r--r-- | src/core/commands.c | 4 | ||||
-rw-r--r-- | src/core/rawlog.c | 11 | ||||
-rw-r--r-- | src/core/write-buffer.c | 4 |
3 files changed, 14 insertions, 5 deletions
diff --git a/src/core/commands.c b/src/core/commands.c index 547f7b16..ed82f44e 100644 --- a/src/core/commands.c +++ b/src/core/commands.c @@ -968,7 +968,9 @@ static void cmd_cd(const char *data) if (*data == '\0') return; str = convert_home(data); - chdir(str); + if (chdir(str) != 0) { + g_warning("Failed to chdir(): %s", strerror(errno)); + } g_free(str); } diff --git a/src/core/rawlog.c b/src/core/rawlog.c index 20368aeb..e66f20dd 100644 --- a/src/core/rawlog.c +++ b/src/core/rawlog.c @@ -102,10 +102,15 @@ void rawlog_redirect(RAWLOG_REC *rawlog, const char *str) static void rawlog_dump(RAWLOG_REC *rawlog, int f) { GSList *tmp; + ssize_t ret = 1; - for (tmp = rawlog->lines; tmp != NULL; tmp = tmp->next) { - write(f, tmp->data, strlen((char *) tmp->data)); - write(f, "\n", 1); + for (tmp = rawlog->lines; ret && tmp != NULL; tmp = tmp->next) { + ret = write(f, tmp->data, strlen((char *) tmp->data)); + ret &= write(f, "\n", 1); + } + + if (ret <= 0) { + g_warning("rawlog write() failed: %s", strerror(errno)); } } diff --git a/src/core/write-buffer.c b/src/core/write-buffer.c index 6f6eef8a..ffc3ae63 100644 --- a/src/core/write-buffer.c +++ b/src/core/write-buffer.c @@ -107,7 +107,9 @@ static int write_buffer_flush_rec(void *handlep, BUFFER_REC *rec) for (tmp = rec->blocks; tmp != NULL; tmp = tmp->next) { size = tmp->data != rec->active_block ? BUFFER_BLOCK_SIZE : rec->active_block_pos; - write(handle, tmp->data, size); + if (write(handle, tmp->data, size) != size) { + g_warning("Failed to write(): %s", strerror(errno)); + } } empty_blocks = g_slist_concat(empty_blocks, rec->blocks); |