mirror of
https://github.com/Tha14/toxic.git
synced 2024-11-26 07:13:29 +01:00
fix buffer overflows and format issues
This commit is contained in:
parent
b99ce9ce46
commit
bfeea47774
15
src/chat.c
15
src/chat.c
@ -72,6 +72,9 @@ static void chat_onAction(ToxWindow *self, Tox *m, int num, uint8_t *action, uin
|
||||
if (ctx->friendnum != num)
|
||||
return;
|
||||
|
||||
uint8_t nick[TOX_MAX_NAME_LENGTH] = {0};
|
||||
tox_getname(m, num, (uint8_t *) &nick);
|
||||
|
||||
action[len - 1] = '\0';
|
||||
|
||||
wattron(ctx->history, COLOR_PAIR(2));
|
||||
@ -79,7 +82,7 @@ static void chat_onAction(ToxWindow *self, Tox *m, int num, uint8_t *action, uin
|
||||
wattroff(ctx->history, COLOR_PAIR(2));
|
||||
|
||||
wattron(ctx->history, COLOR_PAIR(5));
|
||||
wprintw(ctx->history, "%s\n", action);
|
||||
wprintw(ctx->history, "* %s %s\n", nick, action);
|
||||
wattroff(ctx->history, COLOR_PAIR(5));
|
||||
|
||||
self->blink = true;
|
||||
@ -187,7 +190,7 @@ static void chat_onKey(ToxWindow *self, Tox *m, wint_t key)
|
||||
#else
|
||||
if (isprint(key)) {
|
||||
#endif
|
||||
if (ctx->pos != sizeof(ctx->line) - 1) {
|
||||
if (ctx->pos < MAX_STR_SIZE) {
|
||||
mvwaddstr(self->window, y, x, wc_to_char(key));
|
||||
ctx->line[ctx->pos++] = key;
|
||||
ctx->line[ctx->pos] = L'\0';
|
||||
@ -291,15 +294,13 @@ void execute(ToxWindow *self, ChatContext *ctx, Tox *m, char *cmd)
|
||||
wattroff(ctx->history, COLOR_PAIR(2));
|
||||
|
||||
uint8_t selfname[TOX_MAX_NAME_LENGTH];
|
||||
int len = tox_getselfname(m, selfname, sizeof(selfname));
|
||||
char msg[MAX_STR_SIZE - len - 4];
|
||||
snprintf(msg, sizeof(msg), "* %s %s\n", (uint8_t *) selfname, action);
|
||||
tox_getselfname(m, selfname, sizeof(selfname));
|
||||
|
||||
wattron(ctx->history, COLOR_PAIR(5));
|
||||
wprintw(ctx->history, msg);
|
||||
wprintw(ctx->history, "* %s %s\n", selfname, action);
|
||||
wattroff(ctx->history, COLOR_PAIR(5));
|
||||
|
||||
if (tox_sendaction(m, ctx->friendnum, (uint8_t *) msg, strlen(msg) + 1) < 0) {
|
||||
if (tox_sendaction(m, ctx->friendnum, (uint8_t *) action, strlen(action) + 1) == 0) {
|
||||
wattron(ctx->history, COLOR_PAIR(3));
|
||||
wprintw(ctx->history, " * Failed to send action\n");
|
||||
wattroff(ctx->history, COLOR_PAIR(3));
|
||||
|
@ -120,7 +120,7 @@ int add_window(Tox *m, ToxWindow w)
|
||||
void del_window(ToxWindow *w)
|
||||
{
|
||||
active_window = windows; // Go to prompt screen
|
||||
|
||||
|
||||
delwin(w->window);
|
||||
memset(w, 0, sizeof(ToxWindow));
|
||||
|
||||
@ -187,7 +187,7 @@ static void draw_bar()
|
||||
move(LINES - 1, 0);
|
||||
|
||||
attron(COLOR_PAIR(4) | A_BOLD);
|
||||
printw(" TOXIC " TOXICVER "|");
|
||||
printw(" TOXIC " TOXICVER " |");
|
||||
attroff(COLOR_PAIR(4) | A_BOLD);
|
||||
|
||||
int i;
|
||||
|
Loading…
Reference in New Issue
Block a user