commit 20181974c221c84a3c857e83f4f51419ca1a8b23
parent 09553a7b5bed83f154ab0459fc078bbd1a55ac91
Author: Daniel De Graaf <code@danieldg.net>
Date: Sat, 9 Apr 2022 12:03:52 -0400
Avoid format-truncation warning
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.
Diffstat:
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git 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;