diff --git a/0005-broken-db-fix-assertion-in-leveldb-InternalKey-Encod.patch b/0005-broken-db-fix-assertion-in-leveldb-InternalKey-Encod.patch new file mode 100644 index 0000000000000000000000000000000000000000..51212b6646fded104a81c93bdeddd110cca9ae56 --- /dev/null +++ b/0005-broken-db-fix-assertion-in-leveldb-InternalKey-Encod.patch @@ -0,0 +1,45 @@ +From 7d060117fa0d5cab7cb15b0cf127533bea9ffbc7 Mon Sep 17 00:00:00 2001 +From: proller +Date: Mon, 3 Oct 2016 19:40:07 +0300 +Subject: [PATCH] broken db: fix assertion in leveldb::InternalKey::Encode, + mark base as corrupt + +--- + db/dbformat.h | 6 +++++- + db/version_edit.cc | 3 +-- + 2 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/db/dbformat.h b/db/dbformat.h +index ea897b1..415dc96 100644 +--- a/db/dbformat.h ++++ b/db/dbformat.h +@@ -150,7 +150,11 @@ class InternalKey { + AppendInternalKey(&rep_, ParsedInternalKey(user_key, s, t)); + } + +- void DecodeFrom(const Slice& s) { rep_.assign(s.data(), s.size()); } ++ bool DecodeFrom(const Slice& s) { ++ rep_.assign(s.data(), s.size()); ++ return !rep_.empty(); ++ } ++ + Slice Encode() const { + assert(!rep_.empty()); + return rep_; +diff --git a/db/version_edit.cc b/db/version_edit.cc +index f10a2d5..1eea2d1 100644 +--- a/db/version_edit.cc ++++ b/db/version_edit.cc +@@ -88,8 +88,7 @@ void VersionEdit::EncodeTo(std::string* dst) const { + static bool GetInternalKey(Slice* input, InternalKey* dst) { + Slice str; + if (GetLengthPrefixedSlice(input, &str)) { +- dst->DecodeFrom(str); +- return true; ++ return dst->DecodeFrom(str); + } else { + return false; + } +-- +2.40.0.windows.1 + diff --git a/leveldb.spec b/leveldb.spec index dc1bb47c81032e6f9e9a46831a41803b6dc6c8c0..32077d2a89d66598c93c40bda9f60048670a45e8 100644 --- a/leveldb.spec +++ b/leveldb.spec @@ -1,6 +1,6 @@ Name: leveldb Version: 1.20 -Release: 4 +Release: 5 Summary: A key/value database library License: BSD URL: https://github.com/google/leveldb @@ -10,6 +10,7 @@ Patch0001: 0001-Allow-leveldbjni-build.patch Patch0002: 0002-Added-a-DB-SuspendCompations-and-DB-ResumeCompaction.patch Patch0003: 0003-allow-Get-calls-to-avoid-copies-into-std-string.patch Patch0004: 0004-bloom_test-failure-on-big-endian-archs.patch +Patch0005: 0005-broken-db-fix-assertion-in-leveldb-InternalKey-Encod.patch BuildRequires: make gcc-c++ snappy-devel @@ -71,5 +72,8 @@ make -j1 check %{_libdir}/pkgconfig/leveldb.pc %changelog +* Tue Apr 18 2023 yaoguangzhong - 1.20-5 +- fix assertion in leveldb::InternalKey::Encode, mark base as corrupt + * Fri Dec 20 2019 wangyiru - 1.20-4 - Package init