aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoel Kluin <roel.kluin@gmail.com>2009-12-11 09:43:15 -0500
committerJason Wessel <jason.wessel@windriver.com>2009-12-11 09:43:15 -0500
commitb4f1b67be99d6eda8f2f252460905858ace871ef (patch)
tree192b55a4f009716d7a4e82ac061c9b8e89ffb377
parent84667d4849b0e0a939a76f9f62d45fa3b4d59692 (diff)
kgdbts: Read buffer overflow
Prevent write to put_buf[BUFMAX] in kgdb test suite. If put_buf_cnt was BUFMAX - 1 at the earlier test, `\0' is written to put_buf[BUFMAX]. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
-rw-r--r--drivers/misc/kgdbts.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
index e4ff50b95a5e..2ab04923d70f 100644
--- a/drivers/misc/kgdbts.c
+++ b/drivers/misc/kgdbts.c
@@ -712,6 +712,12 @@ static int run_simple_test(int is_get_char, int chr)
712 712
713 /* End of packet == #XX so look for the '#' */ 713 /* End of packet == #XX so look for the '#' */
714 if (put_buf_cnt > 3 && put_buf[put_buf_cnt - 3] == '#') { 714 if (put_buf_cnt > 3 && put_buf[put_buf_cnt - 3] == '#') {
715 if (put_buf_cnt >= BUFMAX) {
716 eprintk("kgdbts: ERROR: put buffer overflow on"
717 " '%s' line %i\n", ts.name, ts.idx);
718 put_buf_cnt = 0;
719 return 0;
720 }
715 put_buf[put_buf_cnt] = '\0'; 721 put_buf[put_buf_cnt] = '\0';
716 v2printk("put%i: %s\n", ts.idx, put_buf); 722 v2printk("put%i: %s\n", ts.idx, put_buf);
717 /* Trigger check here */ 723 /* Trigger check here */