Package: liblouis / 3.0.0-3+deb9u4

cve-2018-11410 Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
commit ed6b00aea08005945c9ae8a4a4503acc43f3a844
Author: Samuel Thibault <samuel.thibault@labri.fr>
Date:   Fri May 25 10:25:33 2018 +0200

    Fix a buffer overflow in table parsing
    
    Fixes #573

---
 liblouis/pattern.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/liblouis/pattern.c
+++ b/liblouis/pattern.c
@@ -744,6 +744,8 @@ static int pattern_compile_expression(co
 		if(!pattern_compile_expression(input, input_max, input_crs, expr_data, expr_max, expr_crs, loop_cnts))
 			return 0;
 
+		if (*expr_crs + 3 >= expr_max) return 0;
+
 		EXPR_NXT(expr_sub) = *expr_crs;
 
 		/*   create end expression   */
@@ -756,7 +758,7 @@ static int pattern_compile_expression(co
 
 	case '+':
 
-		if(*expr_crs + 4 >= expr_max)
+		if(*expr_crs + 5 >= expr_max)
 			return 0;
 		EXPR_TYPE(*expr_crs) = PTN_ONE_MORE;
 		EXPR_DATA_1(*expr_crs) = (*loop_cnts)++;
@@ -765,7 +767,7 @@ static int pattern_compile_expression(co
 
 	case '*':
 
-		if(*expr_crs + 4 >= expr_max)
+		if(*expr_crs + 5 >= expr_max)
 			return 0;
 		EXPR_TYPE(*expr_crs) = PTN_ZERO_MORE;
 		EXPR_DATA_1(*expr_crs) = (*loop_cnts)++;