diff --git a/src/dbus.c b/src/dbus.c
index 8b17b30d45..2b17341e58 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -1435,7 +1435,10 @@ static bool cdbus_process_windows_root_introspect(session_t *ps, DBusMessage *ms
continue;
}
char *tmp = NULL;
- asprintf(&tmp, "\n", w->id);
+ if (asprintf(&tmp, "\n", w->id) < 0) {
+ log_fatal("Failed to allocate memory.");
+ abort();
+ }
mstrextend(&ret, tmp);
free(tmp);
}
diff --git a/src/log.c b/src/log.c
index 0b663e7702..8a494b9e9d 100644
--- a/src/log.c
+++ b/src/log.c
@@ -256,7 +256,7 @@ static void file_logger_write(struct log_target *tgt, const char *str, size_t le
static void file_logger_writev(struct log_target *tgt, const struct iovec *vec, int vcnt) {
auto f = (struct file_logger *)tgt;
fflush(f->f);
- writev(fileno(f->f), vec, vcnt);
+ ssize_t _ attr_unused = writev(fileno(f->f), vec, vcnt);
}
static void file_logger_destroy(struct log_target *tgt) {
diff --git a/src/picom.c b/src/picom.c
index 0e40d45a33..f922978a59 100644
--- a/src/picom.c
+++ b/src/picom.c
@@ -2560,7 +2560,11 @@ int main(int argc, char **argv) {
// Notify the parent that we are done. This might cause the parent
// to quit, so only do this after setsid()
int tmp = 1;
- write(pfds[1], &tmp, sizeof tmp);
+ if (write(pfds[1], &tmp, sizeof tmp) != sizeof tmp) {
+ log_fatal("Failed to notify parent process");
+ ret_code = 1;
+ break;
+ }
close(pfds[1]);
// We only do this once
need_fork = false;
diff --git a/src/utils.c b/src/utils.c
index c080e53eb8..a1114a0491 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -27,7 +27,7 @@ void report_allocation_failure(const char *func, const char *file, unsigned int
{.iov_base = (void *)msg2, .iov_len = sizeof(msg2) - 1},
};
- writev(STDERR_FILENO, v, ARR_SIZE(v));
+ ssize_t _ attr_unused = writev(STDERR_FILENO, v, ARR_SIZE(v));
abort();
unreachable;