https://git.libreoffice.org/core/+/refs/heads/master/external/clucene/patches/heap-buffer-overflow.patch
https://sourceforge.net/p/clucene/mailman/message/36991067/

Index: src/contribs-lib/CLucene/analysis/cjk/CJKAnalyzer.cpp
--- src/contribs-lib/CLucene/analysis/cjk/CJKAnalyzer.cpp.orig
+++ src/contribs-lib/CLucene/analysis/cjk/CJKAnalyzer.cpp
@@ -66,7 +66,7 @@ CL_NS(analysis)::Token* CJKTokenizer::next(Token* toke
 		//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++;
