Blame SOURCES/0006-compose-fix-infinite-loop-in-parser-on-some-inputs.patch

c4524d
From dee0bb2936fc3c968fa4f5cd7bac21d2c22c2b78 Mon Sep 17 00:00:00 2001
c4524d
From: Ran Benita <ran234@gmail.com>
c4524d
Date: Mon, 12 Mar 2018 09:43:55 +0200
c4524d
Subject: [PATCH 06/10] compose: fix infinite loop in parser on some inputs
c4524d
c4524d
The parser would enter an infinite loop if an unterminated keysym
c4524d
literal occurs at EOF.
c4524d
c4524d
Found with the afl fuzzer.
c4524d
c4524d
Signed-off-by: Ran Benita <ran234@gmail.com>
c4524d
(cherry picked from commit 842e4351c2c97de6051cab6ce36b4a81e709a0e1)
c4524d
---
c4524d
 src/compose/parser.c | 2 +-
c4524d
 1 file changed, 1 insertion(+), 1 deletion(-)
c4524d
c4524d
diff --git a/src/compose/parser.c b/src/compose/parser.c
c4524d
index fd2dca9..0e46c95 100644
c4524d
--- a/src/compose/parser.c
c4524d
+++ b/src/compose/parser.c
c4524d
@@ -144,7 +144,7 @@ skip_more_whitespace_and_comments:
c4524d
c4524d
     /* LHS Keysym. */
c4524d
     if (chr(s, '<')) {
c4524d
-        while (peek(s) != '>' && !eol(s))
c4524d
+        while (peek(s) != '>' && !eol(s) && !eof(s))
c4524d
             buf_append(s, next(s));
c4524d
         if (!chr(s, '>')) {
c4524d
             scanner_err(s, "unterminated keysym literal");
c4524d
--
c4524d
2.20.1