summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2018-03-18 04:58:15 +1100
committerMaxime Coste <mawww@kakoune.org>2018-03-18 04:58:15 +1100
commit7ba4ef897bbc7e6c7b65ccf01f4085ed86cd04d6 (patch)
treeeb778c3176669a504364a99ffb09ffa38396fd45 /src
parent0a2807e6526bf386e0dbf4516d4819a97e46f2bb (diff)
Fix crash on expanding command line strings
Diffstat (limited to 'src')
-rw-r--r--src/command_manager.cc5
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);