mirror of
https://github.com/apple/foundationdb.git
synced 2025-05-15 10:22:20 +08:00
Merge pull request #8702 from sfc-gh-ajbeamon/fix-ub-in-keyafter
Fix undefined behavior in keyAfter
This commit is contained in:
commit
a5a5df715b
@ -553,7 +553,9 @@ inline KeyRef keyAfter(const KeyRef& key, Arena& arena) {
|
|||||||
return allKeysEnd;
|
return allKeysEnd;
|
||||||
}
|
}
|
||||||
uint8_t* t = new (arena) uint8_t[key.size() + 1];
|
uint8_t* t = new (arena) uint8_t[key.size() + 1];
|
||||||
memcpy(t, key.begin(), key.size());
|
if (!key.empty()) {
|
||||||
|
memcpy(t, key.begin(), key.size());
|
||||||
|
}
|
||||||
t[key.size()] = 0;
|
t[key.size()] = 0;
|
||||||
return KeyRef(t, key.size() + 1);
|
return KeyRef(t, key.size() + 1);
|
||||||
}
|
}
|
||||||
@ -564,7 +566,9 @@ inline Key keyAfter(const KeyRef& key) {
|
|||||||
}
|
}
|
||||||
inline KeyRangeRef singleKeyRange(KeyRef const& key, Arena& arena) {
|
inline KeyRangeRef singleKeyRange(KeyRef const& key, Arena& arena) {
|
||||||
uint8_t* t = new (arena) uint8_t[key.size() + 1];
|
uint8_t* t = new (arena) uint8_t[key.size() + 1];
|
||||||
memcpy(t, key.begin(), key.size());
|
if (!key.empty()) {
|
||||||
|
memcpy(t, key.begin(), key.size());
|
||||||
|
}
|
||||||
t[key.size()] = 0;
|
t[key.size()] = 0;
|
||||||
return KeyRangeRef(KeyRef(t, key.size()), KeyRef(t, key.size() + 1));
|
return KeyRangeRef(KeyRef(t, key.size()), KeyRef(t, key.size() + 1));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user