summaryrefslogtreecommitdiffstats
path: root/package/libxslt/libxslt-1.1.26-pattern-out-of-bounds-read.patch
blob: cd2e292f4797ac6821c905c5c4db9cbb34927bd6 (plain)
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
From fe5a4fa33eb85bce3253ed3742b1ea6c4b59b41b Mon Sep 17 00:00:00 2001
From: Abhishek Arya <inferno@chromium.org>
Date: Sun, 22 Jan 2012 17:47:50 +0800
Subject: [PATCH] Fix some case of pattern parsing errors

We could accidentally hit an off by one string array access
due to improper loop exit when parsing patterns
---
 libxslt/pattern.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/libxslt/pattern.c b/libxslt/pattern.c
index 6161376..1155b54 100644
--- a/libxslt/pattern.c
+++ b/libxslt/pattern.c
@@ -1867,6 +1867,8 @@ xsltCompilePatternInternal(const xmlChar *pattern, xmlDocPtr doc,
 		while ((pattern[end] != 0) && (pattern[end] != '"'))
 		    end++;
 	    }
+	    if (pattern[end] == 0)
+	        break;
 	    end++;
 	}
 	if (current == end) {
-- 
1.7.8.4