[wpiutil] Fix UnescapeCString overflow when inputSize < 2 (#4796)

Add tests for empty, small, and string without escapes.
This commit is contained in:
Ryan Blue
2022-12-11 10:36:38 -05:00
committed by GitHub
parent 4a0ad6b48c
commit a31459bce6
2 changed files with 20 additions and 1 deletions

View File

@@ -362,7 +362,7 @@ std::optional<long double> wpi::parse_float<long double>(
std::pair<std::string_view, std::string_view> wpi::UnescapeCString(
std::string_view str, wpi::SmallVectorImpl<char>& buf) {
buf.clear();
buf.reserve(str.size() - 2);
buf.reserve(str.size());
const char* s = str.data();
const char* end = str.data() + str.size();
for (; s != end && *s != '"'; ++s) {