diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2022-09-21 11:00:21 +0300 |
---|---|---|
committer | Marius Vlad <marius.vlad@collabora.com> | 2022-11-21 13:55:20 +0200 |
commit | 00a78294b1fff64bfe5eb8d4837e0c253db33850 (patch) | |
tree | f6785db80e75774206f9b9ddf662505e2a36a84a | |
parent | 715eb67cd8cc80dd7e828624493e0c6edf936d75 (diff) | |
download | weston-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.c | 12 | ||||
-rw-r--r-- | compositor/xwayland.c | 5 | ||||
-rw-r--r-- | shared/xalloc.h | 7 |
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(); } |