Commit f8b3f6ef authored by Abhishek Arya's avatar Abhishek Arya Committed by Commit Bot

Use base::StringPiece instead of std::string for fuzz targets.

Use base::StringPiece in cases where caller expects input in

std: :string is null terminated whereas base::StringPiece is not.
base: :StringPiece as it helps to catch for overflow cases.
Change-Id: I0c70d1f8c40fc5f0e826ced5073f563bc74d1d80
Reviewed-on: https://chromium-review.googlesource.com/978036
Commit-Queue: Abhishek Arya <inferno@chromium.org>
Reviewed-by: default avatarRouslan Solomakhin <rouslan@chromium.org>
Reviewed-by: default avatarMax Moroz <mmoroz@chromium.org>
Reviewed-by: default avatarEric Roman <eroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545604}
parent f9064b1d
......@@ -31,7 +31,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
std::vector<url::Origin> supported_origins;
bool all_origins_supported;
std::string json_data(reinterpret_cast<const char*>(data), size);
base::StringPiece json_data(reinterpret_cast<const char*>(data), size);
std::unique_ptr<base::Value> value = base::JSONReader::Read(json_data);
payments::PaymentManifestParser::ParsePaymentMethodManifestIntoVectors(
......
......@@ -17,7 +17,7 @@ struct IcuEnvironment {
IcuEnvironment* env = new IcuEnvironment();
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
std::string input(reinterpret_cast<const char*>(data), size);
base::StringPiece input(reinterpret_cast<const char*>(data), size);
SignedExchangeHeaderParser::ParseSignature(input);
return 0;
}
......
......@@ -13,10 +13,23 @@ static const int kMaxUnescapeRule = 31;
// Entry point for LibFuzzer.
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
std::string path(reinterpret_cast<const char*>(data), size);
base::StringPiece path(reinterpret_cast<const char*>(data), size);
for (int i = 0; i <= kMaxUnescapeRule; i++) {
(void)net::UnescapeURLComponent(path,
static_cast<net::UnescapeRule::Type>(i));
net::UnescapeURLComponent(path, static_cast<net::UnescapeRule::Type>(i));
}
// When non-empty, align |data| to sizeof(char16).
if ((size > 0) && ((size % 2) == 1)) {
data++;
size--;
}
// Test for StringPiece16.
base::StringPiece16 path16(reinterpret_cast<const base::char16*>(data),
size / 2);
for (int i = 0; i <= kMaxUnescapeRule; i++) {
net::UnescapeURLComponent(path16, static_cast<net::UnescapeRule::Type>(i));
}
return 0;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment