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

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