summaryrefslogtreecommitdiffstats
path: root/sys/ddb
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2008-03-07 13:13:17 +0000
committerrwatson <rwatson@FreeBSD.org>2008-03-07 13:13:17 +0000
commit56315a2bc3947503a7241f0b679890f0d3ff54fe (patch)
treec930445d919e3cc3dee3f930cbdd31bb97dfc71d /sys/ddb
parent2dc85bfeba957eff1fa91b725d81a43e6999f244 (diff)
downloadFreeBSD-src-56315a2bc3947503a7241f0b679890f0d3ff54fe.zip
FreeBSD-src-56315a2bc3947503a7241f0b679890f0d3ff54fe.tar.gz
Reserve two bytes at the end of the DDB input line in db_readline() to
hold the newline and nul terminator. Otherwise, there are cases where garbage may end up in the command history due to a lack of a nul terminator, or input may end up without room for a newline. MFC after: 3 days PR: 119079 Submitted by: Michael Plass <mfp49_freebsd@plass-family.net>
Diffstat (limited to 'sys/ddb')
-rw-r--r--sys/ddb/db_input.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/ddb/db_input.c b/sys/ddb/db_input.c
index b71324e..39f2da7 100644
--- a/sys/ddb/db_input.c
+++ b/sys/ddb/db_input.c
@@ -302,6 +302,9 @@ db_readline(lstart, lsize)
char * lstart;
int lsize;
{
+
+ if (lsize < 2)
+ return (0);
if (lsize != db_lhistlsize) {
/*
* (Re)initialize input line history. Throw away any
@@ -316,7 +319,7 @@ db_readline(lstart, lsize)
db_force_whitespace(); /* synch output position */
db_lbuf_start = lstart;
- db_lbuf_end = lstart + lsize;
+ db_lbuf_end = lstart + lsize - 2; /* Will append NL and NUL. */
db_lc = lstart;
db_le = lstart;
OpenPOWER on IntegriCloud