Add first de-fuzzer files

This commit is contained in:
jzmaddock
2017-02-20 14:55:55 +00:00
parent 94cd9e582b
commit 559f24d6d0
2 changed files with 214 additions and 0 deletions

195
test/de_fuzz/dictionary.txt Normal file
View File

@ -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)"

19
test/de_fuzz/narrow.cpp Normal file
View File

@ -0,0 +1,19 @@
#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];
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;
}