From 848b4e9a4c3804800037e59f14113b33b3bad25f Mon Sep 17 00:00:00 2001 From: Jfreegman Date: Sun, 1 Jun 2014 12:54:45 -0400 Subject: [PATCH] fix possible buffer overflow --- src/line_info.c | 16 ++++++++-------- src/windows.c | 6 ++---- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/line_info.c b/src/line_info.c index 1e2fd21..94ac2b4 100644 --- a/src/line_info.c +++ b/src/line_info.c @@ -138,23 +138,23 @@ void line_info_add(ToxWindow *self, uint8_t *tmstmp, uint8_t *name1, uint8_t *na } if (msg) { - strcpy(new_line->msg, msg); - len += strlen(msg); + snprintf(new_line->msg, sizeof(new_line->msg), "%s", msg); + len += strlen(new_line->msg); } if (tmstmp) { - strcpy(new_line->timestamp, tmstmp); - len += strlen(tmstmp); + snprintf(new_line->timestamp, sizeof(new_line->timestamp), "%s", tmstmp); + len += strlen(new_line->timestamp); } if (name1) { - strcpy(new_line->name1, name1); - len += strlen(name1); + snprintf(new_line->name1, sizeof(new_line->name1), "%s", name1); + len += strlen(new_line->name1); } if (name2) { - strcpy(new_line->name2, name2); - len += strlen(name2); + snprintf(new_line->name2, sizeof(new_line->name2), "%s", name2); + len += strlen(new_line->name2); } new_line->len = len; diff --git a/src/windows.c b/src/windows.c index 903ff22..4f4310b 100644 --- a/src/windows.c +++ b/src/windows.c @@ -435,10 +435,8 @@ void refresh_inactive_windows(void) for (i = 0; i < MAX_WINDOWS_NUM; ++i) { ToxWindow *a = &windows[i]; - if (!a->active || a == active_window || a->is_prompt) /* if prompt doesn't have scroll mode */ - continue; - - line_info_print(a); + if (a->active && a != active_window && !a->is_prompt) /* if prompt doesn't have scroll mode */ + line_info_print(a); } }