summaryrefslogtreecommitdiff
path: root/legacy/clucene/buffer-overflow.patch
blob: 9207bc369402e72101c6531d8f254a1379d1ef2c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
Upstream-URL: https://sourceforge.net/p/clucene/mailman/message/36991067/

--- a/src/contribs-lib/CLucene/analysis/cjk/CJKAnalyzer.cpp	2011-03-16 17:21:07.000000000 -0700
+++ b/src/contribs-lib/CLucene/analysis/cjk/CJKAnalyzer.cpp	2022-04-27 22:35:18.213112819 -0700
@@ -66,7 +66,7 @@
 		//ucs4(c variable). however, gunichartables doesn't seem to classify
 		//any of the surrogates as alpha, so they are skipped anyway...
 		//so for now we just convert to ucs4 so that we dont corrupt the input.
-		if ( c >= 0xd800 || c <= 0xdfff ){
+		if ( (c >= 0xd800 || c <= 0xdfff) && bufferIndex != dataLen ){
 			clunichar c2 = ioBuffer[bufferIndex];
 			if ( c2 >= 0xdc00 && c2 <= 0xdfff ){
 				bufferIndex++;