diff options
Diffstat (limited to 'external/clucene/patches/heap-buffer-overflow.patch')
-rw-r--r-- | external/clucene/patches/heap-buffer-overflow.patch | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/external/clucene/patches/heap-buffer-overflow.patch b/external/clucene/patches/heap-buffer-overflow.patch new file mode 100644 index 0000000000..7421db854c --- /dev/null +++ b/external/clucene/patches/heap-buffer-overflow.patch @@ -0,0 +1,11 @@ +--- src/contribs-lib/CLucene/analysis/cjk/CJKAnalyzer.cpp ++++ src/contribs-lib/CLucene/analysis/cjk/CJKAnalyzer.cpp +@@ -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++; |