diff options
| author | Maxime Coste <mawww@kakoune.org> | 2018-03-18 04:58:15 +1100 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2018-03-18 04:58:15 +1100 |
| commit | 7ba4ef897bbc7e6c7b65ccf01f4085ed86cd04d6 (patch) | |
| tree | eb778c3176669a504364a99ffb09ffa38396fd45 /src/command_manager.cc | |
| parent | 0a2807e6526bf386e0dbf4516d4819a97e46f2bb (diff) | |
Fix crash on expanding command line strings
Diffstat (limited to 'src/command_manager.cc')
| -rw-r--r-- | src/command_manager.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/command_manager.cc b/src/command_manager.cc index ac6ef56a..8d400a64 100644 --- a/src/command_manager.cc +++ b/src/command_manager.cc @@ -168,6 +168,7 @@ void skip_blanks_and_comments(Reader& reader) Token parse_percent_token(Reader& reader, bool throw_on_unterminated) { + kak_assert(*reader == '%'); ++reader; const auto type_start = reader.pos; while (reader and iswalpha(*reader)) @@ -340,7 +341,9 @@ String expand_impl(StringView str, const Context& context, Codepoint c = *reader; if (c == '\\') { - c = *++reader; + if (not (++reader)) + throw parse_error{"unterminated escape"}; + c = *reader; if (c == '%' or c == '\\') { res += reader.substr_from(beg); |
