From d68e83c356626664988ad28c3916c02c08ac2e78 Mon Sep 17 00:00:00 2001 From: fyrz Date: Wed, 14 Jan 2015 21:36:43 +0100 Subject: [PATCH] [RocksJava] DirectSlice String termination fix DirectSlice fix for non terminated String copy. This lead sometimes to problems with DirectSliceTest. --- java/rocksjni/slice.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/java/rocksjni/slice.cc b/java/rocksjni/slice.cc index e4b7cf03b..162e868d1 100644 --- a/java/rocksjni/slice.cc +++ b/java/rocksjni/slice.cc @@ -28,9 +28,11 @@ void Java_org_rocksdb_AbstractSlice_createNewSliceFromString( JNIEnv* env, jobject jobj, jstring jstr) { const auto* str = env->GetStringUTFChars(jstr, 0); - const size_t len = strlen(str); + const size_t len = strlen(str) + 1; char* buf = new char[len]; - memcpy(buf, str, len); + memcpy(buf, str, len - 1); + buf[len-1]='\0'; + env->ReleaseStringUTFChars(jstr, str); const auto* slice = new rocksdb::Slice(buf);