From: Benno Schulenberg Date: Mon, 22 Feb 2016 13:17:53 +0000 (+0000) Subject: Not moving too many bytes -- that is: not moving them beyond the X-Git-Tag: v2.5.3~18 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=7c0e433305bd3e1bba20dab343003950db1ba82f;p=nano.git Not moving too many bytes -- that is: not moving them beyond the allocated buffer. This fixes Savannah bug #47219. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5662 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- diff --git a/ChangeLog b/ChangeLog index dc47ddb8..0a1c5b67 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,8 @@ * src/winio.c (edit_scroll): The amount to scroll is never zero. * src/prompt.c (do_statusbar_prev_word, do_statusbar_next_word), src/move.c (do_prev_word, do_next_word): Sort these in standard way. + * src/prompt.c (do_statusbar_output): Don't move too many bytes. + This fixes Savannah bug #47219 (uncovered by r5655). 2016-02-21 Benno Schulenberg * src/files.c (input_tab): If the first Tab added the part that all diff --git a/src/prompt.c b/src/prompt.c index 9d5908d7..55855b6c 100644 --- a/src/prompt.c +++ b/src/prompt.c @@ -290,7 +290,7 @@ void do_statusbar_output(int *the_input, size_t input_len, assert(statusbar_x <= answer_len); charmove(answer + statusbar_x + char_buf_len, answer + statusbar_x, - answer_len - statusbar_x + char_buf_len); + answer_len - statusbar_x + 1); strncpy(answer + statusbar_x, char_buf, char_buf_len); answer_len += char_buf_len;