This avoids a c_str() on a temporary string later down the line, which
avoids a use-after-free.
Fixes: http://tracker.ceph.com/issues/26875
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit
e9be5dabf256c18a5575d1394e481e4f21ece97d)
Conflicts:
src/kv/RocksDBStore.cc : Resolved for Name()
const char *rdata, size_t rlen,
std::string *new_value) = 0;
/// We use each operator name and each prefix to construct the overall RocksDB operator name for consistency check at open time.
- virtual string name() const = 0;
+ virtual const char *name() const = 0;
virtual ~MergeOperator() {}
};
}
// We use each operator name and each prefix to construct the
// overall RocksDB operator name for consistency check at open time.
- string name() const override {
+ const char *name() const override {
return "bitwise_xor";
}
};
}
// We use each operator name and each prefix to construct the
// overall RocksDB operator name for consistency check at open time.
- string name() const override {
+ const char *name() const override {
return "int64_array";
}
};
}
// We use each operator name and each prefix to construct the
// overall RocksDB operator name for consistency check at open time.
- string name() const override {
+ const char *name() const override {
return "Append";
}
};