summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/regex/test/de_fuzz
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
commit483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch)
treee5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/boost/libs/regex/test/de_fuzz
parentInitial commit. (diff)
downloadceph-upstream.tar.xz
ceph-upstream.zip
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/regex/test/de_fuzz')
-rw-r--r--src/boost/libs/regex/test/de_fuzz/Jamfile.v237
-rw-r--r--src/boost/libs/regex/test/de_fuzz/dictionary.txt195
-rw-r--r--src/boost/libs/regex/test/de_fuzz/narrow.cpp20
-rw-r--r--src/boost/libs/regex/test/de_fuzz/wide.cpp21
4 files changed, 273 insertions, 0 deletions
diff --git a/src/boost/libs/regex/test/de_fuzz/Jamfile.v2 b/src/boost/libs/regex/test/de_fuzz/Jamfile.v2
new file mode 100644
index 00000000..4306ba7c
--- /dev/null
+++ b/src/boost/libs/regex/test/de_fuzz/Jamfile.v2
@@ -0,0 +1,37 @@
+# copyright John Maddock 2003
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt.
+
+import testing ;
+
+lib Fuzzer : : <search>. ;
+
+run narrow.cpp [ glob ../../src/*.cpp ] Fuzzer
+ : # additional args
+ -dict=dictionary.txt -workers=3 corpus -runs=5000
+ : # test-files
+ : # requirements
+ <toolset>clang <cxxflags>-fsanitize-coverage=trace-pc-guard
+ <cxxflags>-fsanitize=address <cxxflags>-fsanitize=undefined
+ <cxxflags>-fno-sanitize-recover=undefined <cxxflags>-fno-optimize-sibling-calls
+ <cxxflags>-fno-omit-frame-pointer
+ <include>../../../..
+ <linkflags>-fsanitize=address <linkflags>-fsanitize=undefined
+ debug
+;
+
+run wide.cpp [ glob ../../src/*.cpp ] Fuzzer
+ : # additional args
+ -dict=dictionary.txt -workers=3 corpus -runs=5000
+ : # test-files
+ : # requirements
+ <toolset>clang <cxxflags>-fsanitize-coverage=trace-pc-guard
+ <cxxflags>-fsanitize=address <cxxflags>-fsanitize=undefined
+ <cxxflags>-fno-sanitize-recover=undefined <cxxflags>-fno-optimize-sibling-calls
+ <cxxflags>-fno-omit-frame-pointer
+ <include>../../../..
+ <linkflags>-fsanitize=address <linkflags>-fsanitize=undefined
+ debug
+;
+
diff --git a/src/boost/libs/regex/test/de_fuzz/dictionary.txt b/src/boost/libs/regex/test/de_fuzz/dictionary.txt
new file mode 100644
index 00000000..bd145050
--- /dev/null
+++ b/src/boost/libs/regex/test/de_fuzz/dictionary.txt
@@ -0,0 +1,195 @@
+
+r1="."
+r2="["
+r3="{"
+r4="}"
+r5="("
+r6=")"
+r7="\\"
+r8="*"
+r9="+"
+r10="?"
+r11="|"
+r12="^"
+r13="$"
+r14="]"
+r15="{4}"
+r15="{4,}"
+r16="{4, 10}"
+r17="*?"
+r18="+?"
+r19="??"
+r20="*+"
+r21="++"
+r22="?+"
+r23="{4}?"
+r24="{4,}?"
+r25="{4, 10}?"
+r26="{4}"
+r27="{4,}"
+r28="{4, 10}"
+r29="\\1"
+r30="g1"
+r31="g{1}"
+r32="g-1"
+r33="g{one}"
+r34="\\k<one>"
+r35="[abc]"
+r36="[a-c]"
+r36="[^abc]"
+r37="[[:alnum:]]"
+r38="[[:alpha:]]"
+r39="[[:blank:]]"
+r40="[[:cntrl:]]"
+r41="[[:d:]]"
+r42="[[:digit:]]"
+r43="[[:grpah:]]"
+r44="[[:l:]]"
+r45="[[:lower:]]"
+r46="[[:print:]]"
+r47="[[:punct:]]"
+r48="[[:s:]]"
+r49="[[:space:]]"
+r50="[[:unicode:]]"
+r51="[[:u:]]"
+r52="[[:upper:]]"
+r53="[[:w:]]"
+r54="[[:word:]]"
+r55="[[:xdigit:]]"
+r56="[[:ASCII:]]"
+r57="[[:Any:]]"
+r58="[[:Assigned:]]"
+r59="[[:Other:]]"
+r60="[[:Control:]]"
+r61="[[:Format:]]"
+r62="[[:Not Assigned:]]"
+r63="[[:Private Use:]]"
+r64="[[:Surrogate:]]"
+r65="[[:Letter:]]"
+r66="[[:Lowercase Letter:]]"
+r67="[[:Modifier Letter:]]"
+r68="[[:Other Letter:]]"
+r69="[[:Titlecase:]]"
+r70="[[:Uppercae Letter:]]"
+r71="[[:Mark:]]"
+r72="[[:Mc:]]"
+r73="[[:Me:]]"
+r74="[[:Mn:]]"
+r75="[[:N*:]]"
+r76="[[:Md:]]"
+r77="[[:Nl:]]"
+r78="[[:No:]]"
+r79="[[:P*:]]"
+r80="[[:Pc:]]"
+r81="[[:Pd:]]"
+r82="[[:Pd:]]"
+r83="[[:Pe:]]"
+r84="[[:Pf:]]"
+r85="[[:Pi:]]"
+r86="[[:Po:]]"
+r87="[[:Ps:]]"
+r88="[[:S*:]]"
+r89="[[:Sc:]]"
+r90="[[:Sk:]]"
+r91="[[:Sm:]]"
+r92="[[:So:]]"
+r93="[[:Z*:]]"
+r94="[[:Zl:]]"
+r95="[[:Zp:]]"
+r96="[[:Zs:]]"
+r98="[[.NUL.]]"
+r99="[[.SOH.]]"
+r100="[[.alert.]]"
+r101="[[=a=]]"
+r102="\\a"
+r103="\\e"
+r104="\\r"
+r105="\\n"
+r106="\\t"
+r107="\\v"
+r108="\\b"
+r109="\\C9"
+r110="\\xcf"
+r111="\\x{13}"
+r112="\\x{01f4}"
+r113="\\0456"
+r114="\\N{newline}"
+r115="\\d"
+r116="\\l"
+r117="\\s"
+r118="\\u"
+r119="\\w"
+r120="\\h"
+r121="\\v"
+r122="\\D"
+r123="\\L"
+r124="\\S"
+r125="\\U"
+r126="\\W"
+r127="\\H"
+r128="\\V"
+r129="\\pd"
+r130="\\p{digit}"
+r131="\\Pd"
+r132="\\P{digit}"
+r133="\\<"
+r134="\\>"
+r135="\\b"
+r136="\\B"
+r137="\\`"
+r138="\\'"
+r139="\\A"
+r140="\\z"
+r141="\\Z"
+r142="\\G"
+r143="\\Q"
+r144="\\E"
+r145="\\C"
+r146="\\R"
+r147="\\K"
+r148="(?<one>abc)"
+r149="(?<one>"
+r150="(?'one'abc)"
+r151="(?'one'"
+r152="(?#annansnsbdgh)"
+r153="(?i)"
+r154="(?-i)"
+r155="(?s)"
+r156="(?-s)"
+r157="(?m)"
+r158="(?-m)"
+r153="(?x)"
+r154="(?-x)"
+r153="(?i:abcd)"
+r154="(?-i:abcd)"
+r155="(?:"
+r156="(?|"
+r157="(?="
+r158="(?!"
+r159="(?<="
+r160="(?<!"
+r170="(>"
+r171="(?1)"
+r172="(?-1)"
+r173="(?+1)"
+r174="(?R)"
+r175="(?0)"
+r176="(?&one)"
+r177="(?(?=\\>)"
+r178="(?(?!\\>)"
+r179="(?(1)"
+r180="(?(<one>)"
+r181="(?('one')"
+r182="(?(R)"
+r183="(?(R1)"
+r184="(?(R&one)"
+r185="(?(DEFINE)"
+r186="(*PRUNE)"
+r187="(*SKIP)"
+r188="(*THEN)"
+r189="(*COMMIT)"
+r190="(*FAIL)"
+r191="(*ACCEPT)"
+
+
+
diff --git a/src/boost/libs/regex/test/de_fuzz/narrow.cpp b/src/boost/libs/regex/test/de_fuzz/narrow.cpp
new file mode 100644
index 00000000..448c6b78
--- /dev/null
+++ b/src/boost/libs/regex/test/de_fuzz/narrow.cpp
@@ -0,0 +1,20 @@
+
+#include <boost/regex.hpp>
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
+{
+ if(Size < 2)
+ return 0;
+ try{
+ size_t len = (Data[1] << 8) | Data[0];
+ if(len > Size - 2) len = Size - 2;
+ std::string str((char*)(Data + 2), len);
+ std::string text((char*)(Data + len), Size - len);
+ boost::regex e(str);
+ boost::smatch what;
+ regex_search(text, what, e, boost::match_default|boost::match_partial);
+ }
+ catch(const std::exception&){}
+ return 0;
+}
+
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;
+}
+