From 20181974c221c84a3c857e83f4f51419ca1a8b23 Mon Sep 17 00:00:00 2001 From: Daniel De Graaf Date: Sat, 9 Apr 2022 12:03:52 -0400 Subject: [PATCH] Avoid format-truncation warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The existing code gives this error when compiled with GCC 12: ../sway/server.c: In function ‘server_init’: ../sway/server.c:217:75: error: ‘%d’ directive output may be truncated writing between 1 and 11 bytes into a region of size 8 [-Werror=format-truncation=] 217 | snprintf(name_candidate, sizeof(name_candidate), "wayland-%d", i); | ^~ ../sway/server.c:217:66: note: directive argument in the range [-2147483647, 32] 217 | snprintf(name_candidate, sizeof(name_candidate), "wayland-%d", i); | ^~~~~~~~~~~~ ../sway/server.c:217:17: note: ‘snprintf’ output between 10 and 20 bytes into a destination of size 16 217 | snprintf(name_candidate, sizeof(name_candidate), "wayland-%d", i); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Because i is never negative, this is a false positive, but it is easy to change i to unsigned to silence the error. --- sway/server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sway/server.c b/sway/server.c index 8de9f629..9bfcffaf 100644 --- a/sway/server.c +++ b/sway/server.c @@ -213,8 +213,8 @@ bool server_init(struct sway_server *server) { // Avoid using "wayland-0" as display socket char name_candidate[16]; - for (int i = 1; i <= 32; ++i) { - snprintf(name_candidate, sizeof(name_candidate), "wayland-%d", i); + for (unsigned int i = 1; i <= 32; ++i) { + snprintf(name_candidate, sizeof(name_candidate), "wayland-%u", i); if (wl_display_add_socket(server->wl_display, name_candidate) >= 0) { server->socket = strdup(name_candidate); break;