Browse Source

broken db: fix assertion in leveldb::InternalKey::Encode, mark base as corrupt

master
proller 8 years ago
parent
commit
7d060117fa
2 changed files with 6 additions and 3 deletions
  1. +5
    -1
      db/dbformat.h
  2. +1
    -2
      db/version_edit.cc

+ 5
- 1
db/dbformat.h View File

@ -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_;

+ 1
- 2
db/version_edit.cc View File

@ -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;
}

Loading…
Cancel
Save