summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2022-09-21 11:00:21 +0300
committerMarius Vlad <marius.vlad@collabora.com>2022-11-21 13:55:20 +0200
commit00a78294b1fff64bfe5eb8d4837e0c253db33850 (patch)
treef6785db80e75774206f9b9ddf662505e2a36a84a
parent715eb67cd8cc80dd7e828624493e0c6edf936d75 (diff)
downloadweston-00a78294b1fff64bfe5eb8d4837e0c253db33850.tar.gz
compositor/shared: Suppress write(2) warnings
Fixes the following warnings when building with _FORTIFY_SOURCE and optimizations enabled: ../shared/xalloc.h:49:9: error: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Werror=unused-result] 49 | write(STDERR_FILENO, oommsg, strlen(oommsg)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ or ../compositor/main.c:427:25: error: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Werror=unused-result] 427 | write(STDERR_FILENO, fail_seteuid, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 428 | strlen(fail_seteuid)); | ~~~~~~~~~~~~~~~~~~~~~ ../compositor/main.c:434:25: error: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Werror=unused-result] 434 | write(STDERR_FILENO, fail_cloexec, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 435 | strlen(fail_cloexec)); | ~~~~~~~~~~~~~~~~~~~~~ ../compositor/main.c:442:25: error: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Werror=unused-result] 442 | write(STDERR_FILENO, fail_exec, strlen(fail_exec)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Marius Vlad <marius.vlad@collabora.com> (cherry picked from commit 8c4cdd782e17aa587bfccb6746998571ddc90dd7)
-rw-r--r--compositor/main.c12
-rw-r--r--compositor/xwayland.c5
-rw-r--r--shared/xalloc.h7
3 files changed, 14 insertions, 10 deletions
diff --git a/compositor/main.c b/compositor/main.c
index 73f70b22..15f9d4e1 100644
--- a/compositor/main.c
+++ b/compositor/main.c
@@ -385,6 +385,7 @@ weston_client_launch(struct weston_compositor *compositor,
sigset_t allsigs;
pid_t pid;
bool ret;
+ size_t written __attribute__((unused));
weston_log("launching '%s'\n", path);
str_printf(&fail_exec, "Error: Couldn't launch client '%s'\n", path);
@@ -424,22 +425,23 @@ weston_client_launch(struct weston_compositor *compositor,
/* Launch clients as the user. Do not launch clients with wrong euid. */
if (seteuid(getuid()) == -1) {
- write(STDERR_FILENO, fail_seteuid,
- strlen(fail_seteuid));
+ written = write(STDERR_FILENO, fail_seteuid,
+ strlen(fail_seteuid));
_exit(EXIT_FAILURE);
}
ret = fdstr_clear_cloexec_fd1(&wayland_socket);
if (!ret) {
- write(STDERR_FILENO, fail_cloexec,
- strlen(fail_cloexec));
+ written = write(STDERR_FILENO, fail_cloexec,
+ strlen(fail_cloexec));
_exit(EXIT_FAILURE);
}
execve(argp[0], argp, envp);
if (fail_exec)
- write(STDERR_FILENO, fail_exec, strlen(fail_exec));
+ written = write(STDERR_FILENO, fail_exec,
+ strlen(fail_exec));
_exit(EXIT_FAILURE);
default:
diff --git a/compositor/xwayland.c b/compositor/xwayland.c
index b25b74c9..ea1ae1ef 100644
--- a/compositor/xwayland.c
+++ b/compositor/xwayland.c
@@ -110,6 +110,7 @@ spawn_xserver(void *user_data, const char *display, int abstract_fd, int unix_fd
char *const *envp;
char *const *argp;
bool ret;
+ size_t written __attribute__ ((unused));
if (os_socketpair_cloexec(AF_UNIX, SOCK_STREAM, 0, wayland_socket.fds) < 0) {
weston_log("wl connection socketpair failed\n");
@@ -174,8 +175,8 @@ spawn_xserver(void *user_data, const char *display, int abstract_fd, int unix_fd
/* execve does not return on success, so it failed */
if (exec_failure_msg) {
- write(STDERR_FILENO, exec_failure_msg,
- strlen(exec_failure_msg));
+ written = write(STDERR_FILENO, exec_failure_msg,
+ strlen(exec_failure_msg));
}
_exit(EXIT_FAILURE);
diff --git a/shared/xalloc.h b/shared/xalloc.h
index 2bbb426e..a2747f9c 100644
--- a/shared/xalloc.h
+++ b/shared/xalloc.h
@@ -40,13 +40,14 @@ static inline void *
abort_oom_if_null(void *p)
{
static const char oommsg[] = ": out of memory\n";
+ size_t written __attribute__((unused));
if (p)
return p;
- write(STDERR_FILENO, program_invocation_short_name,
- strlen(program_invocation_short_name));
- write(STDERR_FILENO, oommsg, strlen(oommsg));
+ written = write(STDERR_FILENO, program_invocation_short_name,
+ strlen(program_invocation_short_name));
+ written = write(STDERR_FILENO, oommsg, strlen(oommsg));
abort();
}