aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@gmail.com>2020-11-05 17:42:22 -0800
committerVitaly Buka <vitalybuka@gmail.com>2020-11-05 17:58:57 -0800
commite5869dd9690c3f4dfb842fb90bd07a5a9ee32172 (patch)
treeed46d83da289a79261d57d755293d2f897acde4f
parent51308795413a0535843e599edc7ab418e7e25d7e (diff)
downloadlibprotobuf-mutator-e5869dd9690c3f4dfb842fb90bd07a5a9ee32172.tar.gz
Simplify string resizing
-rw-r--r--src/libfuzzer/libfuzzer_mutator.cc9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/libfuzzer/libfuzzer_mutator.cc b/src/libfuzzer/libfuzzer_mutator.cc
index dfb86ef..34d144c 100644
--- a/src/libfuzzer/libfuzzer_mutator.cc
+++ b/src/libfuzzer/libfuzzer_mutator.cc
@@ -89,13 +89,8 @@ std::string Mutator::MutateString(const std::string& value,
// any 8 bit types.
if (!std::uniform_int_distribution<uint16_t>(0, 20)(*random())) return {};
std::string result = value;
- std::string::size_type new_size = 0;
- if (size_increase_hint >= 0 || static_cast<std::string::size_type>(
- -size_increase_hint) <= value.size()) {
- new_size = value.size() + size_increase_hint;
- }
- result.resize(new_size);
- if (result.empty()) result.push_back(0);
+ int new_size = value.size() + size_increase_hint;
+ result.resize(std::max(1, new_size));
result.resize(LLVMFuzzerMutate(reinterpret_cast<uint8_t*>(&result[0]),
value.size(), result.size()));
return result;