From c01904f91f76b771362ab9fb71289feba1e342f6 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Wed, 21 May 2014 21:26:36 +0200 Subject: external/clucene: Avoid InitOrderFiasco ...as reported by AddressSanitizer, where src/core/CLucene/index/IndexWriter.cpp initializes IndexWriter::MAX_TERM_LENGTH with the value of DocumentsWriter::MAX_TERM_LENGTH before the latter is initialized in src/core/CLucene/index/DocumentsWriter.cpp. But turns out that IndexWriter::MAX_TERM_LENGTH is completely unused. Change-Id: Ica01186584ec05a989a13dc58823f4751e8724e2 --- external/clucene/UnpackedTarball_clucene.mk | 1 + external/clucene/patches/clucene-asan.patch | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 external/clucene/patches/clucene-asan.patch (limited to 'external') diff --git a/external/clucene/UnpackedTarball_clucene.mk b/external/clucene/UnpackedTarball_clucene.mk index efa77476e48c..d0592415f240 100644 --- a/external/clucene/UnpackedTarball_clucene.mk +++ b/external/clucene/UnpackedTarball_clucene.mk @@ -34,6 +34,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,clucene,\ external/clucene/patches/clucene-git1-win64.patch \ external/clucene/patches/clucene-ub.patch \ external/clucene/patches/clucene-mutex.patch \ + external/clucene/patches/clucene-asan.patch \ )) ifneq ($(OS),WNT) diff --git a/external/clucene/patches/clucene-asan.patch b/external/clucene/patches/clucene-asan.patch new file mode 100644 index 000000000000..51adfad4aea7 --- /dev/null +++ b/external/clucene/patches/clucene-asan.patch @@ -0,0 +1,26 @@ +--- src/core/CLucene/index/IndexWriter.cpp ++++ src/core/CLucene/index/IndexWriter.cpp +@@ -53,7 +53,6 @@ + + DEFINE_MUTEX(IndexWriter::MESSAGE_ID_LOCK) + int32_t IndexWriter::MESSAGE_ID = 0; +-const int32_t IndexWriter::MAX_TERM_LENGTH = DocumentsWriter::MAX_TERM_LENGTH; + + class IndexWriter::Internal{ + public: +--- src/core/CLucene/index/IndexWriter.h ++++ src/core/CLucene/index/IndexWriter.h +@@ -384,13 +384,6 @@ + */ + static const int32_t DEFAULT_MAX_MERGE_DOCS; + +- /** +- * Absolute hard maximum length for a term. If a term +- * arrives from the analyzer longer than this length, it +- * is skipped and a message is printed to infoStream, if +- * set (see {@link #setInfoStream}). +- */ +- static const int32_t MAX_TERM_LENGTH; + + + /* Determines how often segment indices are merged by addDocument(). With -- cgit