From 5c66f5c161c331f510d2bdf7c90d234eea399a59 Mon Sep 17 00:00:00 2001 From: Jfreegman Date: Fri, 3 Oct 2014 19:29:12 -0400 Subject: [PATCH] fixes --- src/chat.c | 13 ++++++++----- src/misc_tools.c | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/chat.c b/src/chat.c index 36c4aeb..9f98b91 100644 --- a/src/chat.c +++ b/src/chat.c @@ -116,14 +116,17 @@ static void set_self_typingstatus(ToxWindow *self, Tox *m, uint8_t is_typing) ctx->self_is_typing = is_typing; } -static void chat_set_window_name(ToxWindow *self, char *nick, int len) -{ +static void chat_set_window_name(ToxWindow *self, const char *nick, int len) +{ + char nick_cpy[TOXIC_MAX_NAME_LENGTH + 1]; + snprintf(nick_cpy, sizeof(nick_cpy), "%s", nick); + if (len > MAX_WINDOW_NAME_LENGTH) { - strcpy(&nick[MAX_WINDOW_NAME_LENGTH - 3], "..."); - nick[MAX_WINDOW_NAME_LENGTH] = '\0'; + strcpy(&nick_cpy[MAX_WINDOW_NAME_LENGTH - 3], "..."); + nick_cpy[MAX_WINDOW_NAME_LENGTH] = '\0'; } - snprintf(self->name, sizeof(self->name), "%s", nick); + snprintf(self->name, sizeof(self->name), "%s", nick_cpy); } static void close_all_file_receivers(Tox *m, int friendnum); diff --git a/src/misc_tools.c b/src/misc_tools.c index 52b0337..ab5ee49 100644 --- a/src/misc_tools.c +++ b/src/misc_tools.c @@ -250,7 +250,7 @@ void str_to_lower(char *str) int get_nick_truncate(Tox *m, char *buf, int friendnum) { int len = tox_get_name(m, friendnum, (uint8_t *) buf); - len = MIN(len, TOXIC_MAX_NAME_LENGTH); + len = MIN(len, TOXIC_MAX_NAME_LENGTH - 1); buf[len] = '\0'; return len; }