jcs
/subtext
/amendments
/606
chat: Minor safety fixes
jcs made amendment 606 9 months ago
--- chat.c Mon Apr 10 18:47:33 2023
+++ chat.c Sat Dec 6 17:50:01 2025
@@ -112,9 +112,8 @@ chat_printf_line(struct session *s, short around_bar,
}
/* manually copy since pbuf_line+llen is not null terminated */
- if (final_len + llen + 1 > sizeof(chat_final_pbuf))
- break;
- memcpy(chat_final_pbuf + final_len, pbuf_line, llen);
+ if (final_len + llen + 1 < sizeof(chat_final_pbuf))
+ memcpy(chat_final_pbuf + final_len, pbuf_line, llen);
chat_final_pbuf[final_len + llen] = '\0';
pbuf_line += llen;
@@ -341,7 +340,8 @@ chat_who(struct session *s)
strcmp(sessions[n]->chatting_with_node, s->node) != 0)
continue;
- len += snprintf(chat_tbuf + len, sizeof(chat_tbuf), "[ %c%-16s ]",
+ len += snprintf(chat_tbuf + len, sizeof(chat_tbuf) - len,
+ "[ %c%-16s ]",
sessions[n]->user && sessions[n]->user->is_sysop ? '@' : ' ',
sessions[n]->chat_username);