From cb05528616720a58b61576ccc058b7a05ca49983 Mon Sep 17 00:00:00 2001 From: Hideki EIRAKU Date: Mon, 5 Mar 2012 00:02:17 +0100 Subject: [PATCH] * grub-core/normal/menu_entry.c (kill_line): Fix a crash and off-by-one error. --- ChangeLog | 5 +++++ grub-core/normal/menu_entry.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2a92bac81..c5b6d9d9f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-03-04 Hideki EIRAKU + + * grub-core/normal/menu_entry.c (kill_line): Fix a crash and off-by-one + error. + 2012-03-04 Vladimir Serbinenko Use sort -V by the idea of Georgi Georgiev. diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c index 7af093fd8..b81500e0a 100644 --- a/grub-core/normal/menu_entry.c +++ b/grub-core/normal/menu_entry.c @@ -890,7 +890,7 @@ kill_line (struct screen *screen, int continuous, int update) return 0; grub_memmove (p + offset, linep->buf + screen->column, size); - p[offset + size - 1] = '\0'; + p[offset + size] = '\0'; screen->killed_text = p; @@ -900,9 +900,9 @@ kill_line (struct screen *screen, int continuous, int update) if (update) { - new_num = get_logical_num_lines (linep, &screen->terms[i]); for (i = 0; i < screen->nterms; i++) { + new_num = get_logical_num_lines (linep, &screen->terms[i]); if (orig_num[i] != new_num) update_screen (screen, &screen->terms[i], screen->line, screen->column, 0, 1, ALL_LINES);