summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorJohn Schmoller <jschmoller@xes-inc.com>2010-03-12 09:49:23 -0600
committerMichael BRANDT <michael.brandt@stericsson.com>2010-10-21 14:25:01 +0200
commite84ef91c54b862169601a7b4a2d02be78d0ad002 (patch)
tree88d43c93539ef2eabb1a0d5211dfd71d56c1dd08 /common
parent3fe00dfb8dd6f6b69302a5b91303691ace0d3c08 (diff)
console: Fix console buffer overrun
When CONFIG_SYS_CBSIZE equals MAX_CMDBUF_SIZE, a command string of maximum length will overwrite part of the history buffer, causing the board to die. Expand the console_buffer and hist_lines buffer by one character each to hold the missing NULL char. Signed-off-by: John Schmoller <jschmoller@xes-inc.com> Change-Id: I6ec005d373e81353aa09d3cd3962f279629e7681 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/6815 Reviewed-by: Michael BRANDT <michael.brandt@stericsson.com> Tested-by: Michael BRANDT <michael.brandt@stericsson.com>
Diffstat (limited to 'common')
-rw-r--r--common/main.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/common/main.c b/common/main.c
index 6eeaa792d..fd0ab007a 100644
--- a/common/main.c
+++ b/common/main.c
@@ -69,7 +69,7 @@ static int abortboot(int);
#undef DEBUG_PARSER
-char console_buffer[CONFIG_SYS_CBSIZE]; /* console I/O buffer */
+char console_buffer[CONFIG_SYS_CBSIZE + 1]; /* console I/O buffer */
static char * delete_char (char *buffer, char *p, int *colp, int *np, int plen);
static char erase_seq[] = "\b \b"; /* erase sequence */
@@ -549,7 +549,7 @@ static int hist_cur = -1;
unsigned hist_num = 0;
char* hist_list[HIST_MAX];
-char hist_lines[HIST_MAX][HIST_SIZE];
+char hist_lines[HIST_MAX][HIST_SIZE + 1]; /* Save room for NULL */
#define add_idx_minus_one() ((hist_add_idx == 0) ? hist_max : hist_add_idx-1)