From 346108ec62700cefc292768d455589b5366e8997 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Wed, 15 Aug 2012 17:34:01 +0200 Subject: [PATCH] CommandManager::parse: fix invalid memory read --- src/command_manager.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/command_manager.cc b/src/command_manager.cc index beeb6066..4e982663 100644 --- a/src/command_manager.cc +++ b/src/command_manager.cc @@ -147,14 +147,15 @@ TokenList parse(const String& line, } else { - while ((line[pos] != opening_delimiter or line[pos-1] == '\\') and - pos != length) + while (pos != length and + (line[pos] != opening_delimiter or line[pos-1] == '\\')) ++pos; } } else while (pos != length and not is_horizontal_blank(line[pos]) and - (not is_command_separator(line[pos]) or line[pos-1] == '\\')) + (not is_command_separator(line[pos]) or + (pos != 0 and line[pos-1] == '\\'))) ++pos; if (token_start != pos)