summaryrefslogtreecommitdiff
path: root/url/url_idna_icu_fuzzer.cc
diff options
context:
space:
mode:
authorCronet Mainline Eng <cronet-mainline-eng+copybara@google.com>2024-05-28 13:59:50 +0900
committerMotomu Utsumi <motomuman@google.com>2024-05-28 14:11:54 +0900
commit168f7e285114554eb2ac9bc22343cca461355b50 (patch)
treec65ccc97fb3dc01e329951c1c7c7901aef7b7a2a /url/url_idna_icu_fuzzer.cc
parent5cfdd35118d5a23349255971e97737e32895ec0f (diff)
downloadcronet-168f7e285114554eb2ac9bc22343cca461355b50.tar.gz
Import Cronet version 122.0.6261.43
FolderOrigin-RevId: /tmp/copybara-origin/src Change-Id: Ifb7b548cde690e10cc102366bc538e744efa902b
Diffstat (limited to 'url/url_idna_icu_fuzzer.cc')
-rw-r--r--url/url_idna_icu_fuzzer.cc31
1 files changed, 31 insertions, 0 deletions
diff --git a/url/url_idna_icu_fuzzer.cc b/url/url_idna_icu_fuzzer.cc
new file mode 100644
index 000000000..cf3515b8a
--- /dev/null
+++ b/url/url_idna_icu_fuzzer.cc
@@ -0,0 +1,31 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <stddef.h>
+#include <stdint.h>
+
+#include <string>
+
+#include "third_party/icu/fuzzers/fuzzer_utils.h"
+#include "url/third_party/mozilla/url_parse.h"
+#include "url/url_canon.h"
+
+struct Environment {
+ IcuEnvironment icu_environment;
+};
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ static Environment env;
+
+ if (size < 1) {
+ return 0;
+ }
+
+ std::u16string_view input(reinterpret_cast<const char16_t*>(data),
+ size / sizeof(const char16_t));
+ url::RawCanonOutputW<1024> output;
+
+ url::IDNToASCII(input, &output);
+ return 0;
+}