nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit c4b854d5c7b537d5425aab4426c6dcf0b945950c
parent a03d9c0ecd4edaf004a7e57aa525860f88d86d22
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date:   Tue, 20 Sep 2005 04:15:33 +0000

in display_string(), really avoid a memory corruption problem by
allocating enough space for COLS characters


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3021 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

Diffstat:
MChangeLog | 2++
Msrc/winio.c | 5++---
2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -336,6 +336,8 @@ CVS code - which can be possible if there are enough tabs and the terminal size is sufficiently large, don't try to display it using control_mbrep(). (DLR, found by Duncan Geoffry Doyle) + - Really avoid a memory corruption problem by allocating enough + space for COLS characters. (DLR) edit_redraw(), edit_refresh() - Clean up and simplify. (DLR) edit_update() diff --git a/src/winio.c b/src/winio.c @@ -2328,9 +2328,8 @@ char *display_string(const char *buf, size_t start_col, size_t len, bool assert(column <= start_col); - /* Allocate enough space for the entire line, accounting for a - * trailing multibyte character and/or tab. */ - alloc_len = (mb_cur_max() * (len + 1)) + tabsize; + /* Allocate enough space for the entire line. */ + alloc_len = (mb_cur_max() * COLS); converted = charalloc(alloc_len + 1); index = 0;