summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/regex/test/de_fuzz/wide.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/regex/test/de_fuzz/wide.cpp')
-rw-r--r--src/boost/libs/regex/test/de_fuzz/wide.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/boost/libs/regex/test/de_fuzz/wide.cpp b/src/boost/libs/regex/test/de_fuzz/wide.cpp
new file mode 100644
index 00000000..b719adaa
--- /dev/null
+++ b/src/boost/libs/regex/test/de_fuzz/wide.cpp
@@ -0,0 +1,21 @@
+
+#include <boost/regex.hpp>
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
+{
+ if(Size < 2)
+ return 0;
+ std::vector<wchar_t> v(Data, Data + Size);
+ try{
+ size_t len = (Data[1] << 8) | Data[0];
+ if(len > Size - 2) len = Size - 2;
+ std::wstring str(&v[0] + 2, len);
+ std::wstring text(&v[0] + len, Size - len);
+ boost::wregex e(str);
+ boost::wsmatch what;
+ regex_search(text, what, e, boost::match_default|boost::match_partial);
+ }
+ catch(const std::exception&){}
+ return 0;
+}
+