summaryrefslogtreecommitdiff
path: root/external/clucene
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2014-04-11 12:40:24 +0200
committerStephan Bergmann <sbergman@redhat.com>2014-04-11 12:40:24 +0200
commit213e95bb5bfd91e7946a540034cb6e2769c096cc (patch)
treea0f05e2a0028924cbfe1b148540cb7df5b52c392 /external/clucene
parenta899383ff7c571cd7bd8a9cdef6be6ba77191de9 (diff)
CLucene: Some trivial GCC -fsanitize=undefined fixes
Change-Id: I40132f735eabbead0a1f16d44dbd8878b03902ce
Diffstat (limited to 'external/clucene')
-rw-r--r--external/clucene/UnpackedTarball_clucene.mk1
-rw-r--r--external/clucene/patches/clucene-ub.patch33
2 files changed, 34 insertions, 0 deletions
diff --git a/external/clucene/UnpackedTarball_clucene.mk b/external/clucene/UnpackedTarball_clucene.mk
index cda5b3aafee6..5148fb72fd37 100644
--- a/external/clucene/UnpackedTarball_clucene.mk
+++ b/external/clucene/UnpackedTarball_clucene.mk
@@ -30,6 +30,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,clucene,\
external/clucene/patches/clucene-warnings.patch \
external/clucene/patches/clucene-aix.patch \
external/clucene/patches/clucene-git1-win64.patch \
+ external/clucene/patches/clucene-ub.patch \
))
ifneq ($(OS),WNT)
diff --git a/external/clucene/patches/clucene-ub.patch b/external/clucene/patches/clucene-ub.patch
new file mode 100644
index 000000000000..e1ca3131f301
--- /dev/null
+++ b/external/clucene/patches/clucene-ub.patch
@@ -0,0 +1,33 @@
+--- src/core/CLucene/index/DocumentsWriterThreadState.cpp
++++ src/core/CLucene/index/DocumentsWriterThreadState.cpp
+@@ -994,7 +994,7 @@
+ const TCHAR* tokenText = token->termBuffer();
+ const int32_t tokenTextLen = token->termLength();
+
+- int32_t code = 0;
++ uint32_t code = 0;
+
+ // Compute hashcode
+ int32_t downto = tokenTextLen;
+@@ -1203,7 +1203,7 @@
+ const int32_t newMask = newSize-1;
+
+ ValueArray<Posting*> newHash(newSize);
+- int32_t hashPos, code;
++ int32_t hashPos; uint32_t code;
+ const TCHAR* pos = NULL;
+ const TCHAR* start = NULL;
+ Posting* p0;
+--- src/core/CLucene/store/IndexInput.cpp
++++ src/core/CLucene/store/IndexInput.cpp
+@@ -41,8 +41,8 @@
+ }
+
+ int64_t IndexInput::readLong() {
+- int64_t i = ((int64_t)readInt() << 32);
+- return (i | ((int64_t)readInt() & 0xFFFFFFFFL));
++ uint64_t i = ((uint64_t)readInt() << 32);
++ return (i | ((uint64_t)readInt() & 0xFFFFFFFFL));
+ }
+
+ int64_t IndexInput::readVLong() {