From 286dc9dabd46432fe60b55c9ae0c8d5d735fd466 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 1 Mar 2019 06:49:27 -0800 Subject: listener: fix buffer overflow loading overlong history line. * parser.c (lino_getl): Same fixes that were applied two weeks ago to lino_gets in commit b76c5760. Always check for copy and paste! --- parser.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'parser.c') diff --git a/parser.c b/parser.c index 63796352..3188523d 100644 --- a/parser.c +++ b/parser.c @@ -1474,7 +1474,7 @@ static wchar_t *lino_getl(mem_t *stream_in, wchar_t *buf, size_t nchar) if (nchar == 0) return buf; - while (nchar > 1) { + while (nchar-- > 1) { val ch = get_char(stream); if (!ch) break; @@ -1482,11 +1482,6 @@ static wchar_t *lino_getl(mem_t *stream_in, wchar_t *buf, size_t nchar) break; } - if (ptr == buf) { - *ptr++ = 0; - return 0; - } - *ptr++ = 0; return buf; } -- cgit v1.2.3