backport broken db: fix assertion in leveldb::InternalKey::Encode, mark base as corrupt
category: bugfix bugzilla: https://gitee.com/src-openeuler/leveldb/issues/I6WV0N?from=project-issue commit 7d060117fa0d5cab7cb15b0cf127533bea9ffbc7 CVE: NA Signed-off-by: Guangzhong Yao <yaoguangzhong@xfusion.com>
This commit is contained in:
parent
5d48003a98
commit
c9249a1773
@ -0,0 +1,45 @@
|
||||
From 7d060117fa0d5cab7cb15b0cf127533bea9ffbc7 Mon Sep 17 00:00:00 2001
|
||||
From: proller <proller@github.com>
|
||||
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
|
||||
|
||||
@ -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 <yaoguangzhong@xfusion.com> - 1.20-5
|
||||
- fix assertion in leveldb::InternalKey::Encode, mark base as corrupt
|
||||
|
||||
* Fri Dec 20 2019 wangyiru <wangyiru1@huawei.com> - 1.20-4
|
||||
- Package init
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user