From 66ebe1030d23acfffaa1e373671934e3ef65ac5d Mon Sep 17 00:00:00 2001 From: jfreegman Date: Fri, 22 Dec 2023 15:09:51 -0500 Subject: [PATCH] Manually truncate long game window names Doing this explicitly instead of relying on snprintf gets rid of a compiler warning --- src/game_base.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/game_base.c b/src/game_base.c index f898e6ab6..97b519a35 100644 --- a/src/game_base.c +++ b/src/game_base.c @@ -20,6 +20,7 @@ * */ +#include #include #include #include @@ -918,7 +919,16 @@ static ToxWindow *game_new_window(Tox *m, GameType type, uint32_t friendnumber) char nick[TOX_MAX_NAME_LENGTH]; get_nick_truncate(m, nick, friendnumber); - snprintf(ret->name, sizeof(ret->name), "%s (%s)", window_name, nick); + char buf[sizeof(nick) + sizeof(ret->name) + 4]; + snprintf(buf, sizeof(buf), "%s (%s)", window_name, nick); + + const size_t name_size = sizeof(ret->name); + + assert(name_size != 0 && name_size <= sizeof(buf)); + + buf[name_size - 1] = '\0'; + + snprintf(ret->name, name_size, "%s", buf); } else { snprintf(ret->name, sizeof(ret->name), "%s", window_name); }