diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-03-01 06:49:27 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-03-01 06:49:27 -0800 |
commit | 5fbc79cdc63ef116a230a783b40b399e42350013 (patch) | |
tree | f6150849a3c7f68a0ee315fa6ed06b6cdd55e3a3 | |
parent | fff13b17749ff877ee1a432c21816051706fb33e (diff) | |
download | txr-5fbc79cdc63ef116a230a783b40b399e42350013.tar.gz txr-5fbc79cdc63ef116a230a783b40b399e42350013.tar.bz2 txr-5fbc79cdc63ef116a230a783b40b399e42350013.zip |
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 a2a05e3b. Always check for copy and paste!
-rw-r--r-- | parser.c | 7 |
1 files changed, 1 insertions, 6 deletions
@@ -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; } |