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>
This commit is contained in:
parent
02f27f1cfa
commit
233f8184ec
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=176895
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user