diff --git a/src/global_commands.c b/src/global_commands.c index 71610f4..4b7a37a 100644 --- a/src/global_commands.c +++ b/src/global_commands.c @@ -335,8 +335,8 @@ void cmd_nick(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MA } if (len > TOXIC_MAX_NAME_LENGTH) { - nick[TOXIC_MAX_NAME_LENGTH] = L'\0'; len = TOXIC_MAX_NAME_LENGTH; + nick[len-1] = L'\0'; } tox_set_name(m, nick, len+1); diff --git a/src/groupchat.c b/src/groupchat.c index 3f459ac..e1c470f 100644 --- a/src/groupchat.c +++ b/src/groupchat.c @@ -304,7 +304,7 @@ static void groupchat_onGroupNamelistChange(ToxWindow *self, Tox *m, int groupnu event = " is now known as "; line_info_add(self, timefrmt, oldpeername, peername, event, NAME_CHANGE, 0, 0); - uint8_t tmp_event[TOXIC_MAX_NAME_LENGTH + 32]; + uint8_t tmp_event[TOXIC_MAX_NAME_LENGTH * 2 + 32]; snprintf(tmp_event, sizeof(tmp_event), "is now known as %s", peername); write_to_log(tmp_event, oldpeername, ctx->log, true); break; diff --git a/src/line_info.c b/src/line_info.c index 68f072f..e7d9e65 100644 --- a/src/line_info.c +++ b/src/line_info.c @@ -118,16 +118,16 @@ void line_info_add(ToxWindow *self, uint8_t *tmstmp, uint8_t *name1, uint8_t *na } if (msg) { - memcpy(new_line->msg, msg, MAX_STR_SIZE); + memcpy(new_line->msg, msg, sizeof(new_line->msg)); len += strlen(msg); } if (tmstmp) { - memcpy(new_line->timestamp, tmstmp, TIME_STR_SIZE); + memcpy(new_line->timestamp, tmstmp, sizeof(new_line->timestamp)); len += strlen(tmstmp); } if (name1) { - memcpy(new_line->name1, name1, TOXIC_MAX_NAME_LENGTH); + memcpy(new_line->name1, name1, sizeof(new_line->name1)); len += strlen(name1); } if (name2) { - memcpy(new_line->name2, name2, TOXIC_MAX_NAME_LENGTH); + memcpy(new_line->name2, name2, sizeof(new_line->name2)); len += strlen(name2); }