From 41f45647f90a44514fd18b16fdcec5cceebf1635 Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Tue, 30 Jul 2019 22:45:55 -0700 Subject: [PATCH] Add fuzzer SAPIs to the core --- sapi/fuzzer/Makefile.frag | 18 ++ sapi/fuzzer/README | 13 + sapi/fuzzer/config.m4 | 63 +++++ sapi/fuzzer/corpus/exif/bug34704.jpg | Bin 0 -> 9976 bytes sapi/fuzzer/corpus/exif/bug34704_2.jpg | Bin 0 -> 9976 bytes sapi/fuzzer/corpus/exif/bug48378.jpeg | Bin 0 -> 2566 bytes sapi/fuzzer/corpus/exif/bug54002_1.jpeg | Bin 0 -> 87599 bytes sapi/fuzzer/corpus/exif/bug54002_2.jpeg | Bin 0 -> 87599 bytes sapi/fuzzer/corpus/exif/bug62523_1.jpg | 9 + sapi/fuzzer/corpus/exif/bug62523_3.jpg | 12 + sapi/fuzzer/corpus/exif/bug68113.jpg | Bin 0 -> 368 bytes sapi/fuzzer/corpus/exif/bug68113_2.jpg | Bin 0 -> 368 bytes sapi/fuzzer/corpus/exif/bug68799.jpg | Bin 0 -> 735 bytes sapi/fuzzer/corpus/exif/bug72094_1.jpg | Bin 0 -> 140 bytes sapi/fuzzer/corpus/exif/bug72094_2.jpg | Bin 0 -> 140 bytes sapi/fuzzer/corpus/exif/bug72094_3.jpg | Bin 0 -> 112 bytes sapi/fuzzer/corpus/exif/bug72094_4.jpg | Bin 0 -> 32 bytes sapi/fuzzer/corpus/exif/bug72603.jpeg | Bin 0 -> 3711 bytes sapi/fuzzer/corpus/exif/bug72618.jpg | Bin 0 -> 3711 bytes sapi/fuzzer/corpus/exif/bug72627.tiff | Bin 0 -> 1250 bytes sapi/fuzzer/corpus/exif/bug73737.tiff | Bin 0 -> 48 bytes sapi/fuzzer/corpus/exif/bug76130_1.jpg | Bin 0 -> 3396 bytes sapi/fuzzer/corpus/exif/bug76130_2.jpg | Bin 0 -> 1632 bytes sapi/fuzzer/corpus/exif/bug76423.jpg | Bin 0 -> 1537 bytes sapi/fuzzer/corpus/exif/bug76557.jpg | Bin 0 -> 2372 bytes sapi/fuzzer/corpus/exif/bug77540.jpg | Bin 0 -> 91 bytes sapi/fuzzer/corpus/exif/bug77563.jpg | Bin 0 -> 63 bytes sapi/fuzzer/corpus/exif/bug77753.tiff | Bin 0 -> 873 bytes sapi/fuzzer/corpus/exif/bug77831.tiff | Bin 0 -> 49 bytes sapi/fuzzer/corpus/exif/bug77950.tiff | Bin 0 -> 1267 bytes sapi/fuzzer/corpus/exif/bug77988.jpg | Bin 0 -> 1202 bytes .../corpus/exif/exif_encoding_crash.jpg | Bin 0 -> 7599 bytes sapi/fuzzer/corpus/exif/image007.jpg | Bin 0 -> 283 bytes sapi/fuzzer/corpus/exif/image008.jpg | Bin 0 -> 527 bytes sapi/fuzzer/corpus/exif/image009.jpg | Bin 0 -> 527 bytes sapi/fuzzer/corpus/exif/image010.jpg | Bin 0 -> 741 bytes sapi/fuzzer/corpus/exif/image011.jpg | Bin 0 -> 741 bytes sapi/fuzzer/corpus/exif/image012.jpg | Bin 0 -> 721 bytes sapi/fuzzer/corpus/exif/image013.jpg | Bin 0 -> 721 bytes sapi/fuzzer/corpus/exif/image014.jpg | Bin 0 -> 935 bytes sapi/fuzzer/corpus/exif/image015.jpg | Bin 0 -> 935 bytes sapi/fuzzer/corpus/exif/image016.tiff | Bin 0 -> 1874 bytes sapi/fuzzer/corpus/exif/image017.tiff | Bin 0 -> 1874 bytes sapi/fuzzer/corpus/exif/image018.tiff | Bin 0 -> 2088 bytes sapi/fuzzer/corpus/exif/image020.tiff | Bin 0 -> 2068 bytes sapi/fuzzer/corpus/exif/image021.tiff | Bin 0 -> 2068 bytes sapi/fuzzer/corpus/exif/image022.tiff | Bin 0 -> 2282 bytes sapi/fuzzer/corpus/exif/image023.tiff | Bin 0 -> 2282 bytes sapi/fuzzer/corpus/exif/image024.jpg | Bin 0 -> 417 bytes sapi/fuzzer/corpus/exif/image025.jpg | Bin 0 -> 417 bytes sapi/fuzzer/corpus/exif/image026.tiff | Bin 0 -> 1984 bytes sapi/fuzzer/corpus/exif/image027.tiff | Bin 0 -> 1984 bytes sapi/fuzzer/corpus/exif/test1.jpg | Bin 0 -> 523 bytes sapi/fuzzer/corpus/exif/test2.jpg | Bin 0 -> 1240 bytes sapi/fuzzer/corpus/exif/test22.jpg | Bin 0 -> 1240 bytes sapi/fuzzer/corpus/exif/test3.jpg | Bin 0 -> 1240 bytes sapi/fuzzer/corpus/exif/test4.jpg | Bin 0 -> 713 bytes sapi/fuzzer/corpus/exif/test5.jpg | Bin 0 -> 603 bytes sapi/fuzzer/corpus/exif/test6.jpg | Bin 0 -> 1240 bytes sapi/fuzzer/corpus/json/1.json | 1 + sapi/fuzzer/corpus/json/10.json | 1 + sapi/fuzzer/corpus/json/11.json | 1 + sapi/fuzzer/corpus/json/12.json | 2 + sapi/fuzzer/corpus/json/13.json | 1 + sapi/fuzzer/corpus/json/14.json | 2 + sapi/fuzzer/corpus/json/15.json | 1 + sapi/fuzzer/corpus/json/16.json | 1 + sapi/fuzzer/corpus/json/17.json | 1 + sapi/fuzzer/corpus/json/18.json | 1 + sapi/fuzzer/corpus/json/19.json | 1 + sapi/fuzzer/corpus/json/2.json | 1 + sapi/fuzzer/corpus/json/3.json | 1 + sapi/fuzzer/corpus/json/4.json | 1 + sapi/fuzzer/corpus/json/5.json | 5 + sapi/fuzzer/corpus/json/6.json | 1 + sapi/fuzzer/corpus/json/7.json | 2 + sapi/fuzzer/corpus/json/8.json | 1 + sapi/fuzzer/corpus/json/9.json | 1 + sapi/fuzzer/corpus/json/fail1.json | 1 + sapi/fuzzer/corpus/json/fail10.json | 1 + sapi/fuzzer/corpus/json/fail11.json | 1 + sapi/fuzzer/corpus/json/fail12.json | 1 + sapi/fuzzer/corpus/json/fail13.json | 1 + sapi/fuzzer/corpus/json/fail14.json | 1 + sapi/fuzzer/corpus/json/fail15.json | 1 + sapi/fuzzer/corpus/json/fail16.json | 1 + sapi/fuzzer/corpus/json/fail17.json | 1 + sapi/fuzzer/corpus/json/fail18.json | 1 + sapi/fuzzer/corpus/json/fail19.json | 1 + sapi/fuzzer/corpus/json/fail2.json | 1 + sapi/fuzzer/corpus/json/fail20.json | 1 + sapi/fuzzer/corpus/json/fail21.json | 1 + sapi/fuzzer/corpus/json/fail22.json | 1 + sapi/fuzzer/corpus/json/fail23.json | 1 + sapi/fuzzer/corpus/json/fail24.json | 1 + sapi/fuzzer/corpus/json/fail25.json | 1 + sapi/fuzzer/corpus/json/fail26.json | 1 + sapi/fuzzer/corpus/json/fail27.json | 2 + sapi/fuzzer/corpus/json/fail28.json | 2 + sapi/fuzzer/corpus/json/fail29.json | 1 + sapi/fuzzer/corpus/json/fail3.json | 1 + sapi/fuzzer/corpus/json/fail30.json | 1 + sapi/fuzzer/corpus/json/fail31.json | 1 + sapi/fuzzer/corpus/json/fail32.json | 1 + sapi/fuzzer/corpus/json/fail33.json | 1 + sapi/fuzzer/corpus/json/fail4.json | 1 + sapi/fuzzer/corpus/json/fail5.json | 1 + sapi/fuzzer/corpus/json/fail6.json | 1 + sapi/fuzzer/corpus/json/fail7.json | 1 + sapi/fuzzer/corpus/json/fail8.json | 1 + sapi/fuzzer/corpus/json/fail9.json | 1 + sapi/fuzzer/corpus/json/pass1.json | 58 +++++ sapi/fuzzer/corpus/json/pass2.json | 1 + sapi/fuzzer/corpus/json/pass3.json | 6 + sapi/fuzzer/fuzzer-exif.c | 65 +++++ sapi/fuzzer/fuzzer-json.c | 73 ++++++ sapi/fuzzer/fuzzer-mbstring.c | 75 ++++++ sapi/fuzzer/fuzzer-parser.c | 80 ++++++ sapi/fuzzer/fuzzer-sapi.c | 242 ++++++++++++++++++ sapi/fuzzer/fuzzer-sapi.h | 22 ++ sapi/fuzzer/fuzzer-unserialize.c | 66 +++++ sapi/fuzzer/fuzzer.h | 20 ++ sapi/fuzzer/json.dict | 52 ++++ 123 files changed, 936 insertions(+) create mode 100644 sapi/fuzzer/Makefile.frag create mode 100644 sapi/fuzzer/README create mode 100644 sapi/fuzzer/config.m4 create mode 100644 sapi/fuzzer/corpus/exif/bug34704.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug34704_2.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug48378.jpeg create mode 100644 sapi/fuzzer/corpus/exif/bug54002_1.jpeg create mode 100644 sapi/fuzzer/corpus/exif/bug54002_2.jpeg create mode 100644 sapi/fuzzer/corpus/exif/bug62523_1.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug62523_3.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug68113.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug68113_2.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug68799.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug72094_1.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug72094_2.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug72094_3.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug72094_4.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug72603.jpeg create mode 100644 sapi/fuzzer/corpus/exif/bug72618.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug72627.tiff create mode 100644 sapi/fuzzer/corpus/exif/bug73737.tiff create mode 100644 sapi/fuzzer/corpus/exif/bug76130_1.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug76130_2.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug76423.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug76557.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug77540.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug77563.jpg create mode 100644 sapi/fuzzer/corpus/exif/bug77753.tiff create mode 100644 sapi/fuzzer/corpus/exif/bug77831.tiff create mode 100644 sapi/fuzzer/corpus/exif/bug77950.tiff create mode 100644 sapi/fuzzer/corpus/exif/bug77988.jpg create mode 100644 sapi/fuzzer/corpus/exif/exif_encoding_crash.jpg create mode 100644 sapi/fuzzer/corpus/exif/image007.jpg create mode 100644 sapi/fuzzer/corpus/exif/image008.jpg create mode 100644 sapi/fuzzer/corpus/exif/image009.jpg create mode 100644 sapi/fuzzer/corpus/exif/image010.jpg create mode 100644 sapi/fuzzer/corpus/exif/image011.jpg create mode 100644 sapi/fuzzer/corpus/exif/image012.jpg create mode 100644 sapi/fuzzer/corpus/exif/image013.jpg create mode 100644 sapi/fuzzer/corpus/exif/image014.jpg create mode 100644 sapi/fuzzer/corpus/exif/image015.jpg create mode 100644 sapi/fuzzer/corpus/exif/image016.tiff create mode 100644 sapi/fuzzer/corpus/exif/image017.tiff create mode 100644 sapi/fuzzer/corpus/exif/image018.tiff create mode 100644 sapi/fuzzer/corpus/exif/image020.tiff create mode 100644 sapi/fuzzer/corpus/exif/image021.tiff create mode 100644 sapi/fuzzer/corpus/exif/image022.tiff create mode 100644 sapi/fuzzer/corpus/exif/image023.tiff create mode 100644 sapi/fuzzer/corpus/exif/image024.jpg create mode 100644 sapi/fuzzer/corpus/exif/image025.jpg create mode 100644 sapi/fuzzer/corpus/exif/image026.tiff create mode 100644 sapi/fuzzer/corpus/exif/image027.tiff create mode 100644 sapi/fuzzer/corpus/exif/test1.jpg create mode 100644 sapi/fuzzer/corpus/exif/test2.jpg create mode 100644 sapi/fuzzer/corpus/exif/test22.jpg create mode 100644 sapi/fuzzer/corpus/exif/test3.jpg create mode 100644 sapi/fuzzer/corpus/exif/test4.jpg create mode 100644 sapi/fuzzer/corpus/exif/test5.jpg create mode 100644 sapi/fuzzer/corpus/exif/test6.jpg create mode 100644 sapi/fuzzer/corpus/json/1.json create mode 100644 sapi/fuzzer/corpus/json/10.json create mode 100644 sapi/fuzzer/corpus/json/11.json create mode 100644 sapi/fuzzer/corpus/json/12.json create mode 100644 sapi/fuzzer/corpus/json/13.json create mode 100644 sapi/fuzzer/corpus/json/14.json create mode 100644 sapi/fuzzer/corpus/json/15.json create mode 100644 sapi/fuzzer/corpus/json/16.json create mode 100644 sapi/fuzzer/corpus/json/17.json create mode 100644 sapi/fuzzer/corpus/json/18.json create mode 100644 sapi/fuzzer/corpus/json/19.json create mode 100644 sapi/fuzzer/corpus/json/2.json create mode 100644 sapi/fuzzer/corpus/json/3.json create mode 100644 sapi/fuzzer/corpus/json/4.json create mode 100644 sapi/fuzzer/corpus/json/5.json create mode 100644 sapi/fuzzer/corpus/json/6.json create mode 100644 sapi/fuzzer/corpus/json/7.json create mode 100644 sapi/fuzzer/corpus/json/8.json create mode 100644 sapi/fuzzer/corpus/json/9.json create mode 100644 sapi/fuzzer/corpus/json/fail1.json create mode 100644 sapi/fuzzer/corpus/json/fail10.json create mode 100644 sapi/fuzzer/corpus/json/fail11.json create mode 100644 sapi/fuzzer/corpus/json/fail12.json create mode 100644 sapi/fuzzer/corpus/json/fail13.json create mode 100644 sapi/fuzzer/corpus/json/fail14.json create mode 100644 sapi/fuzzer/corpus/json/fail15.json create mode 100644 sapi/fuzzer/corpus/json/fail16.json create mode 100644 sapi/fuzzer/corpus/json/fail17.json create mode 100644 sapi/fuzzer/corpus/json/fail18.json create mode 100644 sapi/fuzzer/corpus/json/fail19.json create mode 100644 sapi/fuzzer/corpus/json/fail2.json create mode 100644 sapi/fuzzer/corpus/json/fail20.json create mode 100644 sapi/fuzzer/corpus/json/fail21.json create mode 100644 sapi/fuzzer/corpus/json/fail22.json create mode 100644 sapi/fuzzer/corpus/json/fail23.json create mode 100644 sapi/fuzzer/corpus/json/fail24.json create mode 100644 sapi/fuzzer/corpus/json/fail25.json create mode 100644 sapi/fuzzer/corpus/json/fail26.json create mode 100644 sapi/fuzzer/corpus/json/fail27.json create mode 100644 sapi/fuzzer/corpus/json/fail28.json create mode 100644 sapi/fuzzer/corpus/json/fail29.json create mode 100644 sapi/fuzzer/corpus/json/fail3.json create mode 100644 sapi/fuzzer/corpus/json/fail30.json create mode 100644 sapi/fuzzer/corpus/json/fail31.json create mode 100644 sapi/fuzzer/corpus/json/fail32.json create mode 100644 sapi/fuzzer/corpus/json/fail33.json create mode 100644 sapi/fuzzer/corpus/json/fail4.json create mode 100644 sapi/fuzzer/corpus/json/fail5.json create mode 100644 sapi/fuzzer/corpus/json/fail6.json create mode 100644 sapi/fuzzer/corpus/json/fail7.json create mode 100644 sapi/fuzzer/corpus/json/fail8.json create mode 100644 sapi/fuzzer/corpus/json/fail9.json create mode 100644 sapi/fuzzer/corpus/json/pass1.json create mode 100644 sapi/fuzzer/corpus/json/pass2.json create mode 100644 sapi/fuzzer/corpus/json/pass3.json create mode 100644 sapi/fuzzer/fuzzer-exif.c create mode 100644 sapi/fuzzer/fuzzer-json.c create mode 100644 sapi/fuzzer/fuzzer-mbstring.c create mode 100644 sapi/fuzzer/fuzzer-parser.c create mode 100644 sapi/fuzzer/fuzzer-sapi.c create mode 100644 sapi/fuzzer/fuzzer-sapi.h create mode 100644 sapi/fuzzer/fuzzer-unserialize.c create mode 100644 sapi/fuzzer/fuzzer.h create mode 100644 sapi/fuzzer/json.dict diff --git a/sapi/fuzzer/Makefile.frag b/sapi/fuzzer/Makefile.frag new file mode 100644 index 00000000000..57952a8ff47 --- /dev/null +++ b/sapi/fuzzer/Makefile.frag @@ -0,0 +1,18 @@ +fuzzer: $(PHP_FUZZER_BINARIES) + +FUZZER_BUILD = $(LIBTOOL) --mode=link $(FUZZING_CC) -export-dynamic $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS_PROGRAM) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) $(FUZZING_LIB) -rpath /ORIGIN/lib + +$(SAPI_FUZZER_PATH)/php-fuzz-parser: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_PARSER_OBJS) + $(FUZZER_BUILD) $(PHP_FUZZER_PARSER_OBJS) -o $@ + +$(SAPI_FUZZER_PATH)/php-fuzz-unserialize: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_UNSERIALIZE_OBJS) + $(FUZZER_BUILD) $(PHP_FUZZER_UNSERIALIZE_OBJS) -o $@ + +$(SAPI_FUZZER_PATH)/php-fuzz-json: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_JSON_OBJS) + $(FUZZER_BUILD) $(PHP_FUZZER_JSON_OBJS) -o $@ + +$(SAPI_FUZZER_PATH)/php-fuzz-exif: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_EXIF_OBJS) + $(FUZZER_BUILD) $(PHP_FUZZER_EXIF_OBJS) -o $@ + +$(SAPI_FUZZER_PATH)/php-fuzz-mbstring: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_MBSTRING_OBJS) + $(FUZZER_BUILD) $(PHP_FUZZER_MBSTRING_OBJS) -o $@ diff --git a/sapi/fuzzer/README b/sapi/fuzzer/README new file mode 100644 index 00000000000..e0aafcaadfb --- /dev/null +++ b/sapi/fuzzer/README @@ -0,0 +1,13 @@ +Fuzzing SAPI for PHP + +Enable fuzzing targets with --enable-fuzzer switch. + +Your compiler should support -fsanitize=address and you need +to have Fuzzer library around. + +When running `make` it creates these binaries in `sapi/fuzzer/`: +* php-fuzz-parser - fuzzing language parser +* php-fuzz-unserialize - fuzzing unserialize() function +* php-fuzz-json - fuzzing JSON parser +* php-fuzz-exif - fuzzing exif_read_data() function (use --enable-exif) +* php-fuzz-mbstring - fuzzing mb_ereg[i] (requires --enable-mbstring) diff --git a/sapi/fuzzer/config.m4 b/sapi/fuzzer/config.m4 new file mode 100644 index 00000000000..12cf99bf865 --- /dev/null +++ b/sapi/fuzzer/config.m4 @@ -0,0 +1,63 @@ +AC_MSG_CHECKING(for clang fuzzer SAPI) + +PHP_ARG_ENABLE([fuzzer],, + [AS_HELP_STRING([--enable-fuzzer], + [Build PHP as clang fuzzing test module (for developers)])], + [no]) + +dnl For newer clang versions see https://llvm.org/docs/LibFuzzer.html#fuzzer-usage +dnl for relevant flags. + +dnl Macro to define fuzzing target +dnl PHP_FUZZER_TARGET(name, target-var) +dnl +AC_DEFUN([PHP_FUZZER_TARGET], [ + PHP_FUZZER_BINARIES="$PHP_FUZZER_BINARIES $SAPI_FUZZER_PATH/php-fuzz-$1" + PHP_SUBST($2) + PHP_ADD_SOURCES_X([sapi/fuzzer],[fuzzer-$1.c fuzzer-sapi.c],[],$2) +]) + +if test "$PHP_FUZZER" != "no"; then + AC_MSG_RESULT([yes]) + PHP_REQUIRE_CXX() + PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/sapi/fuzzer/Makefile.frag) + SAPI_FUZZER_PATH=sapi/fuzzer + PHP_SUBST(SAPI_FUZZER_PATH) + if test -z "$LIB_FUZZING_ENGINE"; then + FUZZING_LIB="-lFuzzer" + FUZZING_CC="$CC" + AX_CHECK_COMPILE_FLAG([-fsanitize=address], [ + CFLAGS="$CFLAGS -fsanitize=address" + CXXFLAGS="$CXXFLAGS -fsanitize=address" + LDFLAGS="$LDFLAGS -fsanitize=address" + ],[ + AC_MSG_ERROR(compiler doesn't support -fsanitize flags) + ]) + else + FUZZING_LIB="-lFuzzingEngine" + FUZZING_CC="$CXX -stdlib=libc++" + fi + PHP_SUBST(FUZZING_LIB) + PHP_SUBST(FUZZING_CC) + + dnl PHP_SELECT_SAPI(fuzzer-parser, program, $FUZZER_SOURCES, , '$(SAPI_FUZZER_PATH)') + + PHP_ADD_BUILD_DIR([sapi/fuzzer]) + PHP_FUZZER_BINARIES="" + PHP_INSTALLED_SAPIS="$PHP_INSTALLED_SAPIS fuzzer" + + PHP_FUZZER_TARGET([parser], PHP_FUZZER_PARSER_OBJS) + PHP_FUZZER_TARGET([unserialize], PHP_FUZZER_UNSERIALIZE_OBJS) + PHP_FUZZER_TARGET([exif], PHP_FUZZER_EXIF_OBJS) + + if test -n "$enable_json" && test "$enable_json" != "no"; then + PHP_FUZZER_TARGET([json], PHP_FUZZER_JSON_OBJS) + fi + if test -n "$enable_mbstring" && test "$enable_mbstring" != "no"; then + PHP_FUZZER_TARGET([mbstring], PHP_FUZZER_MBSTRING_OBJS) + fi + + PHP_SUBST(PHP_FUZZER_BINARIES) +fi + +AC_MSG_RESULT($PHP_FUZZER) diff --git a/sapi/fuzzer/corpus/exif/bug34704.jpg b/sapi/fuzzer/corpus/exif/bug34704.jpg new file mode 100644 index 0000000000000000000000000000000000000000..42b14c1908fc30fa8b7f45827487a760826c8416 GIT binary patch literal 9976 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 literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug54002_2.jpeg b/sapi/fuzzer/corpus/exif/bug54002_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a622d6d213d3ed02face9639b973f02e41874ddd GIT binary patch literal 87599 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 literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug62523_1.jpg b/sapi/fuzzer/corpus/exif/bug62523_1.jpg new file mode 100644 index 00000000000..9a63d1e84d9 --- /dev/null +++ b/sapi/fuzzer/corpus/exif/bug62523_1.jpg @@ -0,0 +1,9 @@ + + +301 Moved Permanently + +

Moved Permanently

+

The document has moved here.

+
+
Apache Server at getid3.org Port 80
+ diff --git a/sapi/fuzzer/corpus/exif/bug62523_3.jpg b/sapi/fuzzer/corpus/exif/bug62523_3.jpg new file mode 100644 index 00000000000..3ee91368ceb --- /dev/null +++ b/sapi/fuzzer/corpus/exif/bug62523_3.jpg @@ -0,0 +1,12 @@ + + Found + +

Found

+

The resource was found at http://dl.dropboxusercontent.com/u/7562584/Bugs/Php/bad_exif.jpeg; +you should be redirected automatically. + +

+
+
WSGI Server
+ + diff --git a/sapi/fuzzer/corpus/exif/bug68113.jpg b/sapi/fuzzer/corpus/exif/bug68113.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3ce7a620fb108a47d08d669552b995abbacea06a GIT binary patch literal 368 zcmex=Bm<7<_#hv=|r|I2c$Mr5IR&EJh%< zW0Z!o-550(n8D&q3=DJTG5|?1@PpC`KpLb6Ocx|(=9TE>rIsj|=o#o4GyK2J;LO0p z$OuAEz|6`F0&FZS%&hEe?Cc=S!O6|Z!NJAB&d$Zl#l_771niuA{JcDTAU4PlkamzR zAmZU*=K!f74g5dAAjko9C?hkY5(ASUBeNjm|04|YK)16pf&tJAV8F=4%)-hBbP^Xg zP{CFKp!1oTnShREWnlrTt_8|7un4jWDH=Mm2?r*!D;0_uHBMZ}q3pErplHy=4=Tn< zMNOPsV&W2#QmSg|8k$-rre@|AmR8_^_we)z4hanlkBE#)PDxEm&&bRwE-5W5uc)kQ zZfR|6@96BBG|V^&07y2J$~}^+4C1KUw!=a`ODXD-+%o41@ado12e>1KoYCJ1cCly0>%LgJIG&* zOyxk#EXcyDXviky7|5PjD6C}E$RXl1apA^;oXW;QA4HRiE^>*fm^@Vd2=W@(XT*7| hi7cPNJ%;etEe0NDMquPI3o_U<{Qa}2ON06UO#tsw&oBT0 literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug72094_1.jpg b/sapi/fuzzer/corpus/exif/bug72094_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d21382b44b0762b1b94bf39a7ca5375f8d0cb379 GIT binary patch literal 140 zcmex=!+=4+00lf`sBo>wOk-g1^<~gvU|`^2U<1hmS&T4sc-SoHYMN$%^>PCBq`~CS IX$G(W0O%VRPyhe` literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug72094_2.jpg b/sapi/fuzzer/corpus/exif/bug72094_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ec414ce02b17d151a473097ca5db8f0a89ffd8a5 GIT binary patch literal 140 kcmex=!+=4+00lf`sBo>wOk-g1^<~gvU|=Xfk)jKZqyZ2L#)T1s1B|v#=tWs3v0uGU@^W&F+!NmfgtOdn z$^g3+p)B6Y0y#r)#pmLSz(GoUEEge76uvijGTWzFb}gMB@sMxH;3g4Hv6PjGd~KcH ze{F}S$Op1-;S1j|Z2o|*q6M@-Yzy#}Zw^%zEuaNrTcDz70WA>Q0(|YY{94sAtgMLK}Zn!$7B0sPKGQc+CR!edP#p13tqR7%7nb~ znclDVFHa%&W!?{8_=Z9A2kC0mfEtLb0lxChqKZZhsDa2DC~MS!8i=d`zBb%W@bmb0 P1@+Is`I>5PJQ=?Lo6++x literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug72627.tiff b/sapi/fuzzer/corpus/exif/bug72627.tiff new file mode 100644 index 0000000000000000000000000000000000000000..229190a6041926d960856267a5285d887eda49b5 GIT binary patch literal 1250 zcmebD)MDUZU|?WkkYZ$IU<9%lSQr>G+gZSDC9uq_CWwp>P-ZTa?E+*wKom1FgViXgZXg0u%><|2O{MVo39)0|*%fqaiRF0wXpA{@(-uY6E(R literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug73737.tiff b/sapi/fuzzer/corpus/exif/bug73737.tiff new file mode 100644 index 0000000000000000000000000000000000000000..2cb036fc4730502a3e8041ab24ab12a2ad0b0327 GIT binary patch literal 48 ocmebEWzb?^VBlb2Wb|TS2C_gv49H_(-~urlfcQTUfY=}a0A>IMx&QzG literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug76130_1.jpg b/sapi/fuzzer/corpus/exif/bug76130_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e063e46d22a897f1c7d10d375b672c03146c3350 GIT binary patch literal 3396 zcmex=!+=4+00lhcHE^xSOk-g1^weVDU|?V{U;xX5Sgb${0)vIkhU6Yvu$fTJubBk( nJIpR{V2l!@Aut*OqaiRF0;3@?8UmvsFd71*Aut*OBPRp^q!MLZ literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug76130_2.jpg b/sapi/fuzzer/corpus/exif/bug76130_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a9e79dca5cf029b50c88dc4fea7ebbf8975f411b GIT binary patch literal 1632 zcmebD)MDUZU|`5$sF_sHAOd8`F)}cCF*1SJ|7Wo=Fl4qffrQ1lfy7d#LqKsxhA37B zCK%wD1Xj!7#EB4t$&J#3I0U$;@3w~j|Nm3p)KL>hLtvzbfQ@}YMu7qlXXd4`YG_(3 z*xNB6i{&GUF@9x)12i>oapD>O4>1UGFs3jyFf$4=I0-N^2r~XZ!XOW<1sGUafdm|| SGjK0~R0TzBw-`7W!EyjwF)_*j literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug76423.jpg b/sapi/fuzzer/corpus/exif/bug76423.jpg new file mode 100644 index 0000000000000000000000000000000000000000..08fe2bbc5789c39a011865e6d1f9c3cde1f7ee9b GIT binary patch literal 1537 zcmex=;~_JHYei-n1B0(GgBAk=!v_W?MnMJ^AdB(;e+EWIaR{4%0muVlbWlEI0nmpG U3>;u`lo$uIwO+C<;aJ|H+ zK~_%;8`%xWAqv(zsRkTE?|^Pt0CV3+p<$_k2N;cl;HYE)MGXvq*c?cFnD{6?8Umvs PFd71*Aut*OR0#n9q?4nA literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug77540.jpg b/sapi/fuzzer/corpus/exif/bug77540.jpg new file mode 100644 index 0000000000000000000000000000000000000000..559022db0e886b66801f2e7495a0ec97c4036993 GIT binary patch literal 91 zcmex=;~_(+Yei-n1B0(GgBAk=0}l{GfDi*S6B7d?ki*CdA_O69TM(NO!Ujp+Vqjum O_aRv=cJR0C#n0@>Prp5Fd`ewo?% Hc_1+Wd}j(# literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug77753.tiff b/sapi/fuzzer/corpus/exif/bug77753.tiff new file mode 100644 index 0000000000000000000000000000000000000000..b237f39e2b30f67b8ddab06f9766308aaa4eb05c GIT binary patch literal 873 zcmebD)MDUZU|>*SPyhiii-Cck5yIXC;)4KG9L{E9V5pg-ppXg_XJLk_0ZUR!{3mFD zzfYuZKxnXne?W+*v!joKv%j8>PlyWxL5)LF!G9nak`Bk|=)vb5aEfA3P~ZS!AV5#+ KAU>ty3JL%Yp>9h6 literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug77831.tiff b/sapi/fuzzer/corpus/exif/bug77831.tiff new file mode 100644 index 0000000000000000000000000000000000000000..c7e9f4472be60daa907e6d1cda97d046877cb645 GIT binary patch literal 49 tcmex=;~|5dYei-n1B0(GgBAk=1CIg_Fff5h1_lM72s4n+4Wt=CVgL%t2Q&Zx literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug77950.tiff b/sapi/fuzzer/corpus/exif/bug77950.tiff new file mode 100644 index 0000000000000000000000000000000000000000..5c8250ab04a255e9552d5a798c5a36e5dfa4ec94 GIT binary patch literal 1267 zcmebD)MDUZU|`^8;A3QCPyn*Bfta6>NkIZgZvtWgMka=@%nS^tfNW+)P6kCF%?QL& zjI3b#8ju~%$ijFJNP~a|RJ}cr4N?zMgslD_P+XXa`TutytqH`L?JQtN_( zeIk7WLW30=Jl#D*9DNj=9erJc92H=I!8bE6Kc^&7N5R|Q&(qma!PnEz-zUV8!P(MG zD@w=3#LOUy!GodU*?*wf9zb`4?1q^MGRwsis3-9cP!t3Vf~*V;tqd9z&YeGc?)1?! z#~CCUW;H>4X2Hb3Fc-@10J3W)u`?(DjRS=j$0Uf!3_u&WCOrY$f=dl21JnQi|Ct0t zfcl`m2djSvK$nSlUvAWU0zbuI;k zoQmAMVylYW0$cTrlG*|*ef_**J)mV!Fn!vDxv6@|`MLTPi3R$`dItJDNT3J72D%yu zzM}{2f9eLU12AZnI+%WfA}ZL+Gg$XOuYn2Fsf2EN?fQ+Iw^$xOdHU@6i5&sYsD6bdK|Fqic^$uB!wCA7!JYvC>TOa! literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/bug77988.jpg b/sapi/fuzzer/corpus/exif/bug77988.jpg new file mode 100644 index 0000000000000000000000000000000000000000..120ff8565a87d82e9e3fcfd5d819df0043faebb5 GIT binary patch literal 1202 zcmex=!+=4+00sR2$H0dqz<`C1s)OPGL#COo6`5%a48Fb$S_}*f91KiNGZ>hFECV1` zo74tp`vdtINTwUGFo1aw5?KPo4)ybN_IGi`lw@FHVq{88F8G1DJjpFvkp1i-V}?E_k#vfKvwfMq3iC6&S~YV8zUEEkIWQ ft^aSpXb%^nl%Ywf0W{L@K_hcP#{R#>z-#~j#VP6c literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/exif_encoding_crash.jpg b/sapi/fuzzer/corpus/exif/exif_encoding_crash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..55138abe55210de94674b32ad39676608e88b3ab GIT binary patch literal 7599 zcmeHMTW}Lq7(Sa#nlvrYlyVUnUCJeep-r-Ffvjn;qy&ogLRu~OWSVT7we4=$-I}yB zK7bd{@u7`(24{d)MIW321yN^I6a{<(Z-72n@A4wx-O-8vIoWK|(jrmu#hmPE{`2pD zzW@Kf^Y58%PV#i}Q&h6S-{?mawB^)tgpy-L53Y?1T?jQbp=Agm3o4>!AOlFH&=XV% zk*y$)Ql*H7Zwfw$nukn8M(BC!T3tRwRcJPVK)J}=>%i_ciY0Ox$e$QyW^lF($e6;R zxLvz2GTH$BJap9DcvDL=<7)}Dwgl?i8(W$+O@rGBcX9M267pRimO6Q+H6p2!5|N^e zuWbcW(IJRoDW)t%tkYG^Ia$uRiorrP$GQ>oFMS}2CEIqU8K5oOp48=%9pzf4z}pVH zCWjFkLdXpBj82wy4bf?4=($5iU0yy+rEDkz4aOpAl z9L)w+eR|k(Wr)rGafbSF-J#D8h$0{3p5$q zr}M>fI$taoX4zP?BcZa$93QVj9LVG3?I%;V74LAUC)Q_HwmuG$S(rk=8N2;FcD zQa*(ca~L7h37Cr;U~N2rP?-&6{3KAou7NTTAJ`8y{~Y`UHu5dcK%Rj-19=AW4CER3 ze=?99o3SsVs!`725S6MR{-3rgB=tGs!KlMk<#Zs=>UcC5>fu$UlkXP9I{SC8zHVoP zaGkxQw#nHP_3;s5{h-XZ4K}xj275y8uzj`H>WOplzGxq>2AOzYuc&bGIy(X9K*nl^ zogpS_Po2H7FWAj<9DXTim!w|CUB$9?z>vdTT%f_PA;754u7w(l#j0Y}Rg&E8aJk)X zhm&=%Y$aG!Dg&Y#j8}@vLO`%G1fzjhLb4E51xaKuX0TK0SL^I{E2Ba4;918WM+3e? zcmOnp@!%onllr2P$cw7tlf*8eyI&4sXl#)3*T!!lgVd;3@VYz>>=z_#qpR7;)zy=$ zo#WK0f#%8M_^ZG&k;}ZI@ZmLrsLorq>|25VA|nCy*^>HuhS>DN{WCz31YW5?d*~p(KY^)OLlptgG4Zx?J^^cajsudAjm+<-|Zv#`)^X)0GngIT`1x zD^FKW4CG||-&9xTt(zC&RXYan)X9&L4}Qm|@TE1{MB`RqG}0z>f!U0^rLd^bVzFAx zX6rPowWt`Hxp4Z7X~omAj6v{pJPWR3i`jxLa%;&qkj(&hm7DW5to5&3-?*Wz{gzuh zHf_Ew6z03SBf=eu+J9#(J}`LqJ@?+XeaHO|Bp!PBkw+hU{E3}=M@FA|`k8&tK6l`S z7Y`nK>F~?1y!qDAx8FH-{KUJb-h2Op4?jA6=Iq#KpMUY?S6_eg?YRpVzyIOKpML)3 z*WYknaAK57OV4aVUN(HZ0&8G2ntj!;b6!{+t6zC$M1U|sGyT){scQ3 BQ}O@+ literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image007.jpg b/sapi/fuzzer/corpus/exif/image007.jpg new file mode 100644 index 0000000000000000000000000000000000000000..852654075a26b221ab7b5e3af465bac2a747aef4 GIT binary patch literal 283 zcma*gI}XAy3;aul6*_=4 za!i6CIw9qWIr%wB5U0s6NM)vikzbMQ556W|VDc=Nh#S;jAip7P5NFA!q{~wYCGvYx zQai`az(44R!8i&=!y39{f7shUj3Pfox98MrZp{VS)R|2D^oHxMdG3l=Uw7QPx3ual zFQOR+eWw@sN4sH!@4L1?ahii58ik0Tu?0<06jjkwRZDB6jIL>Vh8sr4Fu35e5bLcy{swry9Oc_o*yR4SF_*^&^Ya?vc7=ZF7=_ztE{uVOMYA(>1zSv;jbOWygl c^duEOQzR+-Gc|vwPvA16A+m{0RL|nacca}+_5c6? literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image009.jpg b/sapi/fuzzer/corpus/exif/image009.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8803ddccd4231c3149a305cb119789e957bfae36 GIT binary patch literal 527 zcma)%yG{a85Qb;i3(InVv)LsfEX9_Ff-HDn3kw556GFig7+B*rK-M*)rFK4mv9z?b zvbNv}th_Y(3ckQP=OmI4Eu51-^UZ%IGnw=y{Q!Q@+3x@%!XrIMKjEuAi;e(#J*WeK z0XZx}hKQ3cuq2rgUn7^CBfh~ZXq1t3hwg&!aRn6V(*$hEeuwG@+>u-$o?qTdt`I+y zpm*+#!joYfO_OLcZa{w;jt9r5NfO4;A9&4%-|$5rbV*{P%q`#F3jB?rx$XJQU~My4 zUxjuY4ZT4Uo*l*sELYud=CwyrGKnF5hdt0$Rn=5o)AXE9${V_FNvNO&84DE)(>XZuNOAB_ d7{cY^^ra9k{^?r3-8Wzg(h|jjU8rBBuiu}gP5uA? literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image010.jpg b/sapi/fuzzer/corpus/exif/image010.jpg new file mode 100644 index 0000000000000000000000000000000000000000..31ed6d678dba8b1306fb6618dd38105c749c5327 GIT binary patch literal 741 zcma))yGtWc6voe;cP5kM4v7#Fh3OQFF!8bL#=>HWm<3VDUm!Z-G#bW{bqhfv?4}e8 z5n(~Za?3@wu&~%-OG_Uh>px*Tem66Uj})HaLSl^2?Dl$gG3OJRp4mS7V`~M&>9mRPd$#u z#WxV=y>{y54InG#M>q7DG(}NVMN?HRr9o*!(~PubnrYLtxYaFgWpg~2wetBwA)oIr zm&^UmQ;AEMuIm{qQ{=o@>a+VwPlxY?=$vc=J208qB-u>1S@aiwg4pVL8N%hST@o(q V>Dq7IYqDg9A+k+VG`tgCJphySW9k3^ literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image011.jpg b/sapi/fuzzer/corpus/exif/image011.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fcd5783ec7b63de00848aee5e5e262822642ac30 GIT binary patch literal 741 zcma)&&ubG=5XZlh{h7@sc}r3VNrk;BJ%mlI+NK8&lF|yHLjD42SKLcmwp&^cf~255 zh8(063Z?YeV-XJ?Jb3WvQ7uUOPk3GDJ+>>w9GqpC&-=b%-h4Oxo?bybU0PWJ5#a-W zNU!N@Z!dZQ^!u0rV8fvb3QU6YEmak}%@O@UsrWD2E8%@`;Rk8ZZ7 zH^bwc4-W2TPM!fH?Zyd>MtaU?V=L?7e=)W*W=_Q`P)OFp^O~WvYCTGbuO}peePRVgx;i?dBr7Efww^pmyYqjZC zt2OQCA%~Dk<^MwZ8J^8%NFxsgk2H_cFQ_YfylEb`RE0EsE2K&j VRqtQ*CtQvA5zWJ6%{s4<8WAXq1 literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image012.jpg b/sapi/fuzzer/corpus/exif/image012.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dd25e06181fb451d091769f1de3d52521bcd8f38 GIT binary patch literal 721 zcma)3J5L)y7@WN~=d-;h8_BXMjshj3aLy3&aEcU>5ss8lI8vH45gf`jfQ~~zOC&^* z5~0+oQz9w~3VuM!JftZ63EIo-X+a54@U2EO-|T4jyW8S>@dxtd{BRyZ2pn^vI2T8Q z?Q{hg4yWM(@KF;6B-I{Krw+)6grpuLe<9k!h9G|>I$9r5-xp@-8`Lw*H_0c&GwLe& z8}WJ9K#TmFnA*3>`~|hDS3A*ivayt<>v_7i+Qs5}vO4;(ndeD{#ZlDj#@!fLU{c+F z$un{Mq#r-(_nt;^umA9Ie{L3oEM1C5d9w9B%kh7=kZebTFnR6NJ=DuM4;d_RyuSu&{AWxW-G12LCCZelShX~ho zt3kCTWve|Nj<>Hi?<$H@gdXP4?r4`3`HA^J~rHFvMZQUwDSUB2Ia@AQ0U=a=~}sP)ySs~{qL<{$Da zIvegM+rVgqIRGv^s>5JXoJZ8q>@$BLrFn|^BXv+=CC*ROE%}V@!PGwAK=Zo4#q}3@ zthvVg_3%`4oB8MQEG*p*T(e?y5N^e9Hq&G`OLitbZ0yF9@$0u)7N^)4hy7mEi=+>0 zobq(7^HKD05G@V*kHV-wc(6QJT);3*Hp6ii@4ZSh+^*K*{cyOIWIL(sdvlLv$j+oE zGoCRr$%ecQz2tv6HC~8sm43z~Ge`pVpSM6KaLS(d`V6?kDt)tsiY@i?LY+cc#HYJO zEj^O=3tbe=f8Ysh%d#q#U8&epHfPnfZMW)sUe)t_y`dU)zu9cHn$4MRw>uM- zA(xQjI5of4R;t~Z4yHTh;r~K@j=<#s$)o^AKxRPs1zLJ!p0o^CTqTR#3UTS5Zt%DJ R9lpsQC@=%8VD4T1?Ki9EQ}6%) literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image014.jpg b/sapi/fuzzer/corpus/exif/image014.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7657a0a4c75276629ee71c5edfc93822064bfec2 GIT binary patch literal 935 zcma)4J#W)c6ur;iah&8?Nu?+$k{PO^4#5eOk1#NxR81u)QjnOTb%hz)${0}wmNHNw z1{5(M1QOy0AST4vp#uXyfUf~o{)9Q#eyIv%;9AG$-1DyQdsold=j;c`m8Ibl2_fh` z9?E`dj|V&P2GMZ1Kn@X=sVX#*P-CD5?SbC_61oI_3$%nu0{j7JE4>eWLg=}#LHAJK z0DlB7Kv%%uf#oc6quJbEp+9kB#O3?JdUR(kiMP{uYqLYE+tKFe*4;FX z5?UPv-A>pEiI!2xA56FxhUfa>nSS?t5O({g&-NEj(IAP}f>9dXyOE^yXSN*e1cUWB z-AXX|i``1WXMd&N{&v5)?=nCc~bL+N+W_PD4qQR66WK$n!Zq1|!O{{Z#c z>!Kc#^dlN+KF4~DM%>&Ok|ufXRs z@~#|Ko)O)IZ>yTy+zfFX;JP`*pgg~(m?xg}VV=i}d4iKlFDlNy(Iv7B!!QlYG_8^a zlpV`*%AV_%UDuOd9@4AUWUcDe>y1XeKHF}$XM@AwCc?JuidSh$*=)`DGp)nL{}tIj w`3}x0bm5cc3*8sl0sdt^`O$FLm4Ca$u9)ij|GHnv({V$-?$bqDc$j_p4F)S{SO5S3 literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image015.jpg b/sapi/fuzzer/corpus/exif/image015.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6f52dec4d76de325cd52baf8fa8735091547a816 GIT binary patch literal 935 zcma)(zi-n}5XbMH9ow;;#8y%%N{VELs;EP70_8^-7*MKGDHJJ4%+R{R3~gnMC<99v zs1QRHF(3p|#UFr}5Mzf94EzE78erw0Fn5pFhbl5~*5y9$`!3J-^(#IXKOk6Hy1E32 z2=D2E;-`2z*hx14hC^5Y00%s*f*=YgCs>p06TiVga+&xowxC26DL-Ia^8ua$L+W$_ z_GEv9)*tbbw@F#CP3-D35BG)A zY4UyJFS8*E_Vb9+VV>q`nnt}RC`*6-MPv%TNt9EHYlK96Z*)hZN58x)ZnAD_eT9hM z&Iw>iomkukTld_RdjKb?a^IY)Ec5z?s^nRnBP-6UHTQ6yR&|kU@eQtkWtwKmv`Qtb zY*BiSWjUVjx}NL$fiENQtF@q3_3QOUqh6nFx7)Lk4n72J+phSPW)L)6GvQ22Z~iY7 y2M{_mAQ~8g2+;_!IE03_Let7{SPj_7v0xRas^P!tSMUwGpwI~6GAukUzWfIIUua+e literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image016.tiff b/sapi/fuzzer/corpus/exif/image016.tiff new file mode 100644 index 0000000000000000000000000000000000000000..17121139331bdade2ce4ac3578bf68facb1f3d85 GIT binary patch literal 1874 zcmebD)MDUZU|UgUWrI{PL)olAHXD@93}o{$GBF4M=}$n+4`lNI zX(pgS0zft=Se}7FkdXy!wjVnKgD8^uVo2tTL)EYV^+++Yg4Ig^&5?$(6@Y9RB)u9? zHWN_2HP9|zAguvZ;{X(A03tIWdqxuzg9K3A3}`P1_*N>Uq!uR^WfqiV=I7}#_!p$+ z1!t6&l%y6h_y;Q(>KW)6fYcojV_;B#)2>CC$qK5EA^^?sZBA#f#m=wdoU>Y-BXzJpMgPr7YBpElxqr@ z`g;CE907@z{{_)SDLHAu&W^tS(ZE-r)gn;MZymu&9K|R!TWr30o5%F7C0!w!ev4H6)bLX4lV3U-ScsC)qDe^79>M}SHnAV`4F$Z@o!5h6v1G&?m5 nCB1;u%Ou@_mRN*zkIK_K1W;-NkJJhU*ObhX{33=11_cEGBf8oF literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image017.tiff b/sapi/fuzzer/corpus/exif/image017.tiff new file mode 100644 index 0000000000000000000000000000000000000000..89800d8796279fbe9ef8a02e646476ae209bdee5 GIT binary patch literal 1874 zcmebEWzb?^VBla7W@KPs2C^7|kb#jAiOmFMa{$Gep=?$ln+?ha>SE+$U;^qD0OC)K z{9rZ@P?U*L0LUq!uR^WfqiV=I7}#_!p$+ z1!t6&l%y6h_y;Q(>KW)6FffQ604h~L(5^+9$qK(5r}Tbw?G<{#E}4+^8X;Ia~bR}83Z0E zvM@m0lEr{<%jW|M*O9bCnSUdpZmFTRTP_?xb<2VU$_}t_iC>^_1=B6T&PU2Xq8FP% zG&RHJG7r}kEi45Jz}P|u25Lt_L1G4K$nhW14lZ995*Q#favU`-K{o?C r|CAZ~Eadb8Qk5jbeh0hiQPF`80hHRnBeg=oH6^nozlfoMK|uikR0!G$ literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image018.tiff b/sapi/fuzzer/corpus/exif/image018.tiff new file mode 100644 index 0000000000000000000000000000000000000000..6b4492f7cdfea386440e6a1d8023159266c500c5 GIT binary patch literal 2088 zcmebD)MDUZU|UgUWrI{PL)olAHXD@93}o{$GBF4M>3=}X4`lOz z#TXa_fNV}6TMB5XAR`OdY!#qEqDbb8A(<}@Rl@?-!wOLk)GN&hVe0_dGDvzgpll|f zdTXFvyg=FnsKx;(&HzMCK=zC#CI$(hxDz`ALuNa~4N*Wg2>4biq@)%n7iAWdWaj7T zG58mx<^^YzmXxFxG57~780s158GzIs5My9afYYu;naK*lC8_0!MI|6vhW`xp3L}!GYxfD623i_}x>O^Pho1eHRCV z!IWzXnEHDDL>vK$mj4COMJYLH!Oo7p|Ixr#pw+-!3kGi;!O0!UgHUM7fi^NQWSo1+ zF2JDpfC1_jhAf0z4t&0@0MUs|MuOeIz)(YVw;Z^D>Xroy9F$?X1MTNzQTnZE)$mCfX7h*%N#6jQ8NeyyG0FDK7jK-DAd{`KqV0nBtU57I9k#O zks?HzotlM`UO?()lI}oDEJC_R<>?&)D7Aq{YK4MpN@huZ5d$~FtR_gU^#mAqbD``v zK(=}Zq^1o3I+b|>6F3)t0gAIg*&M(cl6?|H4XCE&fU;SDY)&W}lpMGwLClu{s%Kh& zsJ)qy*g$3ATC^5OgKBV4d1Yi^U}0roW@TupU|?uvVs2$>j8#k)s1{^@1A~GB0B1?> AbN~PV literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image020.tiff b/sapi/fuzzer/corpus/exif/image020.tiff new file mode 100644 index 0000000000000000000000000000000000000000..87f187821ad4b0fdc917ae9f1bc70fc0570f6c4e GIT binary patch literal 2068 zcmebD)MDUZU|UgUWrI{PL)olAHXD@93}o{$GBF4M>3=}X4`lOz z#TXa_fNV}6TMB5XAR`OdYyqG_qDbb8A(<}@Rl@?-!wOcf0@N$b2x030*)m9aHK1%J zpn7YdUA#cr1gORVD9!*xPC)jICME_6ptut|1A}S@#0^nEHVF7uDx{p{SD@9vTnh$o9l^;R%7aj7%7HdAFl3y2 z$u7X4_<#ZG7KSW@TMm4_t^m=AOh$s;z`#&Lb+;V2fa;b73mlYT;j$q93Kq9G2bY1v zrTHR=re?VCT)x7E94-@<-hjtZ0m~dLZc#G`1-nHJR6c<7KPc4NBS0k)5F|ioedODsaVN9E}q0w}eCM{0$FYf5HGei676Ot@>!tbH-O@x`VL&S0L9tBJO+jjKyh}cnjg^gpa_%) jsZ)j0KnlzcfzlvlFmph(I*vRx zu&}TYvA9AD{{^cpuCfrtpeaObEd)UX3*-6T-0WrU61zYOGt2P4_sx56-oE)&DBuu) zGVL#ejk}o@8I89R?i0J<>i9@!#BM8o zuN8k!Vgpz7fo9R!91#0j_^{}=d=DB-vx}2@uI+@5i9GZAcSi0$(fnROjyxDh;>+_C z8-?qt6f6|OawRIy&*d;t3FiEnD^V1LnDEunoR{-}-k40)iX02eMde39bvle_1P$Cm z3>2||2mz{?Mo4J0{SOtO(_+^DAAg&BDQ^H%SvQ}G*<@U)&y8omt0ANxd+Nh#x8D!z zlgutxS(d^}v!i}txY5zXPcrFgdJlgi$=ls(9p()ldNU)xBJ(BdqM6HOtmN_|Rv#^Q z1DDU4TyCy+E^p)ZTxzxb`J^rvYHD$HF8*l!DzoqIv0Tr(yzkz&XxHV%Bej&|;#L%` zR%i1D>t~qr2JQ8qysz&XOra_5HM;Y>GsfEb>l5;+yJ^>emad!*8R|JHi>~bRGSg(Rr0Iomw7s&NA<|_$5Mgv*-?VX`XcX9kONf hi(RN?sk7~XktDQ!+DO^Xiy@;Y@sAk&ILq5m>Mt*E;SK-* literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image022.tiff b/sapi/fuzzer/corpus/exif/image022.tiff new file mode 100644 index 0000000000000000000000000000000000000000..88f43733413e73ba49b81b1131874055f7b4ac9a GIT binary patch literal 2282 zcmeH|&ubGw6vyBGXp_dO5!xzRVS+R%9^yuAt?`ml3ii-ch+;k2nrvxA+OS=XilWv- zd+<<-h?ELB=)sGBfTtY9gNLG6)Psnpf(Jnm!GjXNZ+6mdYQ#$qf}Ldcedg_(H*bFI zyn%uJ6eOZnBF!KTB&&~g#cX9LZU8qbHo)67ox+eIblwhb2JZ%k!A;;Oc!y?6-z#v` z>hs^`^S@Ksn6iI^w71ZAkLGa?xZT&cQ?U;FV;E~IWC}JZ=n4Nc`2Ms`yP!`8i1IUD z3}fJqS&uEA7|P%kk+Y|=PQKvgCnw@GRIn#9;}>1mc4#Og5^*bTv0b^1NUX|!C!ZA= z*Dj7aF2AJ;-Jo)orpP6miZn_NXtVqeD}ckM_Ww__eH_1vlNT9DnPvWLNTffA#R^gE zX^^bDZ^ZBY?)(^j#@gafmQL=%Sf;Ocu(Gav!_Y0N^XFc9^lMzLGslQT<4d0cVTybt z6$_nTi>3Vat*CJz8)sw;MAtSvmh#KmSW2bTzUsP^&Mw!9r7v?yuFLILEH`ppnqM!6 z{OdCJ=-uib70kstu|%y?GL|Uc5Ayrx<(e7hTM1>vlm0z=c*}eBw`cc@g_`ri_U-51 zL$_J}#TBT@2FLBoqCb~+Cmq^C3)5Z(`+~iDp!hpDHtS{G6PS)Mr+Z&9GLosd1ss_7 zY&h!%6`SBD#e5t>^Pc}s*z2XWOm6rXX2f^YbyQAz%m*#2Cuwyj6Gw%WNFF|t>^f9e zw->f@eA$mj*Kw>h((yxXM5HL>pa(C008cpt4<3qQQ4b=X1P_8Bf(J`{Gnq}dX}lFY*a?&O+c)pMc{?*Z zFCNDs00z1l;3Z=817j}sC^ks%Roq70u9&>oE_le-Pvm2}C3h0{GQZ>w;vm}tO~!}u zg>}2)_qgKkb!?!qUeGKu8bV3*$*137cWE>#2|_UzcN6HpP>6 zCO>W2G=ds#p#r3^02>+PF%64oyZsLzfS2pHSE+33J>vF!#S2yR99Iajv+BbKF+{$%%+v!_% zuglXS|KQ}JS4)HOtrMsp;#yOIWdiavQx3?J}NsEn^-kLH>p!S2RmY#!%=f68actuNc7n8=-^Sb z(vj@}>TPu|BF!TzK9gB`5`;veUenEEJfMFu>NzL$T0{SwNX%Z(rCsWYjhE0HHY>t~ jT7bH+>sOM5d_JQjy|aoVB@3x%;UoHCB?pDP4bJ}nWx4eI literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image024.jpg b/sapi/fuzzer/corpus/exif/image024.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0b5a42e8948b96a745dd570d1ff457634d93cef1 GIT binary patch literal 417 zcma)&zfQw25XQetY{w){Yb&W#B^{V6gaTrKiJ_uW7?D4#vgNX3R2mTXxM>pL$(6&=(0EF&d@C{TPK?M1* zBwKwBNM;cPXD0{y?2_I$J52){A!mNYL3a5o)QWz1PSIVSF3y_Wz3q$Z1$Xg|8I%x0 z3MHl5P#l?7N@pfbvotl<^s;6!w8McZin1(j$%jt8D+nZ(D%1=pf*glraVDHVn3(tIVuwRaZ~f~R>UJ>n literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image025.jpg b/sapi/fuzzer/corpus/exif/image025.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a5c0e17c7a523ac311d61c1d29932ce5a113ef08 GIT binary patch literal 417 zcma)&%}T>S6ot=CW+pM2v@;}yl62v^h{S?mS6xU87P|2bTxf})xOA`JYxoqdUHB0G zZ0eJYcLGLG7d^v)Z_ecocdmPN8<^$dWC0?=6Cb!w+|O^D3t+Xv7(fhqXdsw~U9y=T zWtZ%=iR5a)Bu=MCV2V7~2X$@y4anHnhPo~?!4Go{&DGiZyq+BHU*4>FiVqw^2_d9V zQmP%rPGhCwR3}NAB--d!M)&%r-_v022Y<<@^lxharti=puhE7UGmP)t+ZXk!F#P}k literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/image026.tiff b/sapi/fuzzer/corpus/exif/image026.tiff new file mode 100644 index 0000000000000000000000000000000000000000..8fdafc738fe2a72ea277ad034daabd35ebedb373 GIT binary patch literal 1984 zcmebD)MDUZU|UgUWrI{PL)olAHXD@93}o{$GBF4M>3=}X4`lOz z#TXa_fNV}6TMB5XAR`Od>^2NX-k*C@m>TEn@HwRxs2v&@%w3J0Qlupa7>`i!zfHf=g1%6N^efvJC$j>KP6s zGZZtFFr+e+GbAz;0a>G9B!mDkfkERRmv2|+9Q1H8_Fy}u5gZeHG z27@Wr6fpJm{E0XM5-tA=qKi^;(t@2GegC6@uRyDTxfTrGI)alsln0^Elml&KV8}T4 zl3jp7@c{$WEeu%*w;cF+vKnT!Oxfq|ih>TWr30o5%F7C0!w!ev4H6)bLX4lV3U-ScsC)qDe^98kM}SHqAV`4F$Z@o! z5h6v1G&?m5CB1;u%Ou@_mRN*zkIK_K1W;-NkJJhU*ObhX{32l8#kv4e+vGsw4pfIR zF|Ys~7-VSyWU+(U28IR(3<69Hd_eJaK$VOF5M7{>g$aobSE+$U;^qD0OEg) z{9rZ@NR&|k%;p5Lr5FVnSit5put6GjJ+IM_Q*O*6pa5)2INPVJd6^Vy?-W;6I!Dx{1Ssa)TfRy+tDBSx$hk;?2 zIs?ZP1BGjt+Wzz$i2#ZIEeFvlMQJ(C!M=|F(E#IDpb`;?ZpXJk8kF3T0GjguAgOa1 z>@OJv9w@RfK-`kWfN;y_0}9uXv_qMHBcX1op|)Et96)u;f(6PBuyBcApl}7#Ey2!5 z%0QwQn?W=+!{ss$*A?V&Svo=C2Fxui1q#5}LI(zFM?yhj25QLhAJGmjYZww3AT)9u zH7-Fn13Uke8T%~c^a4_qB*T6OyXsNVferzb+Q1{VLcuj9vn0O=SPd;;h1WJYU{|sN zYco(i$r5B~0ZJk4Ahv;_fdR1M1c~zj>!@`Cj4)jci~>vuHpqm`+{E-$10!?2lFYO; Jh6V-&1pxj)?U?LR#UJO6b*$~fG#Lh5@t1O zoG1cv!NH)5ABQ&u|Uz`(%4z|=H@feFac0AjUCZD6(}knIn|837sjCHV>($(jnjdQSPN zMd_(U46Z4eC8;S2NtFmOJqE{MXHQR{4v^srC8@8W}Q3`{`RvH)cmfw+x{ z3C3pP2J#vHWAoK*h86}M4h{}Z4jxWU9zkv{Zb4Cg9v*&C31MMTVPOeD9x#AX5Dq%Y z$ji;m%f~Cg$0s1d$HylEBKSlgS_FwP;Qs*zK@Om!8JQWC7?=bZnFSgD-vv6J@&6G< zd!TPv8NmSL2_RqwMhXin8#@Ol7dKE3sw5)=6EjRwfPs;Pk(r5wiIts=gO!=b7$_;o z%%Uh{$m$rFD6CZ2Xv8Kmap6WMWfjq&gGt6FMNJo-*;OY6e|Y#Yx!6=}(WYiKm&qY1 zu7?(vn2BEseU$oXbIak&rH?G-Fo!u)30G^Wo^@zZ98`D**A0d z@bvQb>C3ktzyAEYASg2QSfR-?v=A|MwW47&KiSS9IU zQPU*nVA14alaH!wAP2CknI5_Xbi`uu6xUF*lGI0VC*XF0I>HJ6Z!z#NgY6V#uxI!h TGX2y_mF53${vVC@kr?d&kaR;W literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/test22.jpg b/sapi/fuzzer/corpus/exif/test22.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f60ecded6f8b0e8c717c57155b6bdea3d2af2725 GIT binary patch literal 1240 zcmex=&u|Uz`(%4z|=H@feFac0AjUCZD6(}knIn|837sjCHV>($(jnjdQSPN zMd_(U46Z4eC8;S2NtFmOJqE{MXHQR{4v^srC8@8W}Q3`{`RvH)cmfw+x{ z3C3pP2J#vHWAoK*h86}M4h{}Z4jxWU9zkv{Zb4Cg9v*&C31MMTVPOeD9x#AX5Dq%Y z$ji;m%f~Cg$0s1d$HylEBKSlgS_FwP;Qs*zK@Om!8JQWC7?=bZnFSgD-vv6J@&6G< zd!TPv8NmSL2_RqwMhXin8#@Ol7dKE3sw5)=6EjRwfPs;Pk(r5wiIts=gO!=b7$_;o z%%Uh{$m$rFD6CZ2Xv8Kmap6WMWfjq&gGt6FMNJo-*;OY6e|Y#Yx!6=}(WYiKm&qY1 zu7?(vn2BEseU$oXbIak&rH?G-Fo!u)30G^Wo^@zZ98`D**A0d z@bvQb>C3ktzyAEYASg2QSfR-?v=A|MwW47&KiSS9IU zQPU*nVA14alaH!wAP2CknI5_Xbi`uu6xUF*lGI0VC*XF0I>HJ6Z!z#NgY6V#uxI!h TGX2y_mF53${vVC@kr?d&kaR;W literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/test3.jpg b/sapi/fuzzer/corpus/exif/test3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7547a16630f6b7c2f1b4ecfa0b4bc2f53dcd8204 GIT binary patch literal 1240 zcmex=&u|Uz`(%4z|=H@feFac0AjUCZD6(-knIn|837sjCHV>($(jnjdQSPN zMd_(U46Z4eC8;S2NtFmOJ%&&}PiKD@R|bY74A&U$Fx+Q&!tjmZ56}n(CZKCsfHWfz zw=prn*i76Y$^Y1Vb(^7ufro>GgOh`Ylaoh~n~Pgel%I!(UsOU^SX5Y8LXZaxpcI6I zPBQXxbMx}?3h?m>i16|8iGT<`5r`H+Vhs3yfI*N0=x9b}MkNL&K}Kdl#{YMLj%WOT zgwY=88&*az0C@rkn1PYP!pg?Z!O6u9)PpL?$iT!5lN4ZJWMO1xVqs!sXX9XH<}n6J z3No`O3K_CG1||wC6*d~NiA-F$(MefFH0WTGu}M+WMQ3)^Nx>f;eoQVl6P; z+&w(KynXue?Z>Y_|1JoM5+)WFu$$P~SWUrBP&5=`0lJ`2Nto5BaiR#w1qXvJelS)^ zdRWvn$vIdwx!B~RDjUcF>}sZmE&&~}SUklw)T|`+5!?y5U7(I|!v9+gJj`G_1sUua VzJ^RcwNhpI|C|3uqkSYsI{@YCL^c2b literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/test4.jpg b/sapi/fuzzer/corpus/exif/test4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a23a7b658ddc7ebf78fd17be50a39b0fffee3a7 GIT binary patch literal 713 zcma)2OH5Ni6g~5%?@Zt z)QzYC)IIoF3!-rge&Q!4wkm6=pY3?tS`99YcXH>PGxyxNnGtWqM>O|Eq7g8O;RG#+ zB1++jp+O)TJpwBL8MhZ0oW%MlZxMG9o}s)+TqB&ITp)go@CxM(;&#I4l$A(e9BG`z z05T}xXmtT6NngYTj3S3D^1sjH6*=E(<+-ytF@^AbAfma)d~j2nGQ*1TxH?|EMQ`T9RfJ3N97C2Cvl6cG+6gF?yncB zSgZaiHbasaC*7cMu1G9Eoho%lFfR=PzHs z_vqQ{?H?+Qgv=C$p2B6W_`p=j&AWQ+vDDb)tlr|^SzNKKZ5DTf@wRkMn=__Do~2bY r(VNMyZ%xlHCrf47(XKeXfo!v&21X`Eh6EsF_ zkeiEJP?VpChhJ1eSXfk8SVE8o44@Q*gHAH?a&z}sZmE&&~} qSUklw)T|`+5!?y5U7(I|!v9+gJj`G_1sUuazJ^RcwNhpI|C<0o6qVxu literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/exif/test6.jpg b/sapi/fuzzer/corpus/exif/test6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..073cefdfe0221f6f2d283139df9f590ad46c47a2 GIT binary patch literal 1240 zcmex=W>z~q&UQ}a?7 z{y$`z=~|JQ#=zj~%b>-;z`()4)HH*E3CPj_Vzo(aV73^L?GMBm0U7xv`3g$DdJ0bY zsYU6jMM`=Mt|^%%sVNHT2tjo{2FGA$Pfwr@kHnmudn!!If!EG#N4EFs7P22cvZ zK_?k`xw(1ycm??Q1Vs4w_(VVip9n;YATb8~KfoZ!0dzDYGoum%lOQ9rAmjhLK*uxw zKf-7a^bIQ`7=Szh1kAulVPR!s=iubx2I@hTWMp7shDi!AFtRW*GqEtSva@lpGV>S% zB?XyT6om{~9Rm}El?oe;*hD5S+~}mNA{uls$=IZ*>7p~c>ZITg4?iXsn~E*k)U4(* zIV8pP(Bcv^@k^nPQa^2OIefYF@n<*nDN9HZQ8PJ$F4p5 zX6_!IUfw=^`S#=2pMMtwMF|rN3)oHUY^Uu>f6As3gp4)HqQD+%8Z@IN|>-1|DXxoq`PZ W3|~X0pIWK1{Qu4WqtQMRqa6S<2|%_0 literal 0 HcmV?d00001 diff --git a/sapi/fuzzer/corpus/json/1.json b/sapi/fuzzer/corpus/json/1.json new file mode 100644 index 00000000000..8161287aab9 --- /dev/null +++ b/sapi/fuzzer/corpus/json/1.json @@ -0,0 +1 @@ +{"prop":{"prop":null}} diff --git a/sapi/fuzzer/corpus/json/10.json b/sapi/fuzzer/corpus/json/10.json new file mode 100644 index 00000000000..59483c2539e --- /dev/null +++ b/sapi/fuzzer/corpus/json/10.json @@ -0,0 +1 @@ +{"a":100.1,"b":"foo"} diff --git a/sapi/fuzzer/corpus/json/11.json b/sapi/fuzzer/corpus/json/11.json new file mode 100644 index 00000000000..e3907a414c3 --- /dev/null +++ b/sapi/fuzzer/corpus/json/11.json @@ -0,0 +1 @@ +[100.1,"bar"] diff --git a/sapi/fuzzer/corpus/json/12.json b/sapi/fuzzer/corpus/json/12.json new file mode 100644 index 00000000000..222a6678f9c --- /dev/null +++ b/sapi/fuzzer/corpus/json/12.json @@ -0,0 +1,2 @@ +{"0":0,"\u0000ab":1,"1":"\u0000null-prefixed value"} + diff --git a/sapi/fuzzer/corpus/json/13.json b/sapi/fuzzer/corpus/json/13.json new file mode 100644 index 00000000000..b9c504cdbef --- /dev/null +++ b/sapi/fuzzer/corpus/json/13.json @@ -0,0 +1 @@ +{ "test": { "foo": "bar" } } diff --git a/sapi/fuzzer/corpus/json/14.json b/sapi/fuzzer/corpus/json/14.json new file mode 100644 index 00000000000..0014681471b --- /dev/null +++ b/sapi/fuzzer/corpus/json/14.json @@ -0,0 +1,2 @@ +"aa\udbff\udffdzz" + diff --git a/sapi/fuzzer/corpus/json/15.json b/sapi/fuzzer/corpus/json/15.json new file mode 100644 index 00000000000..92591f81a3c --- /dev/null +++ b/sapi/fuzzer/corpus/json/15.json @@ -0,0 +1 @@ +"latin 1234 -\/ russian мама мыла раму specialchars \u0002 \b \n U+1D11E >𝄞<" diff --git a/sapi/fuzzer/corpus/json/16.json b/sapi/fuzzer/corpus/json/16.json new file mode 100644 index 00000000000..2129292029e --- /dev/null +++ b/sapi/fuzzer/corpus/json/16.json @@ -0,0 +1 @@ +{"test":"123343e871700"} diff --git a/sapi/fuzzer/corpus/json/17.json b/sapi/fuzzer/corpus/json/17.json new file mode 100644 index 00000000000..4e4676b2990 --- /dev/null +++ b/sapi/fuzzer/corpus/json/17.json @@ -0,0 +1 @@ +[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] diff --git a/sapi/fuzzer/corpus/json/18.json b/sapi/fuzzer/corpus/json/18.json new file mode 100644 index 00000000000..81873afdecd --- /dev/null +++ b/sapi/fuzzer/corpus/json/18.json @@ -0,0 +1 @@ +{"myInt":99,"myFloat":123.45,"myNull":null,"myBool":true,"myString":"Hello World"} diff --git a/sapi/fuzzer/corpus/json/19.json b/sapi/fuzzer/corpus/json/19.json new file mode 100644 index 00000000000..cc33c95a71e --- /dev/null +++ b/sapi/fuzzer/corpus/json/19.json @@ -0,0 +1 @@ +"\u65e5\u672c\u8a9e\u30c6\u30ad\u30b9\u30c8\u3067\u3059\u300201234\uff15\uff16\uff17\uff18\uff19\u3002" diff --git a/sapi/fuzzer/corpus/json/2.json b/sapi/fuzzer/corpus/json/2.json new file mode 100644 index 00000000000..3a9a9722e2a --- /dev/null +++ b/sapi/fuzzer/corpus/json/2.json @@ -0,0 +1 @@ +{"largenum":123456789012345678901234567890} diff --git a/sapi/fuzzer/corpus/json/3.json b/sapi/fuzzer/corpus/json/3.json new file mode 100644 index 00000000000..b004f2079d0 --- /dev/null +++ b/sapi/fuzzer/corpus/json/3.json @@ -0,0 +1 @@ +["","'bar'","\"baz\"","&blong&"] diff --git a/sapi/fuzzer/corpus/json/4.json b/sapi/fuzzer/corpus/json/4.json new file mode 100644 index 00000000000..8e73a26dab2 --- /dev/null +++ b/sapi/fuzzer/corpus/json/4.json @@ -0,0 +1 @@ +["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026"] diff --git a/sapi/fuzzer/corpus/json/5.json b/sapi/fuzzer/corpus/json/5.json new file mode 100644 index 00000000000..5c7912450dc --- /dev/null +++ b/sapi/fuzzer/corpus/json/5.json @@ -0,0 +1,5 @@ +[ +{"":"value"}, +{"":"value", "key":"value"}, +{"key":"value", "":"value"} +] diff --git a/sapi/fuzzer/corpus/json/6.json b/sapi/fuzzer/corpus/json/6.json new file mode 100644 index 00000000000..2d852843f1e --- /dev/null +++ b/sapi/fuzzer/corpus/json/6.json @@ -0,0 +1 @@ +[123,13452345,123.13452345] diff --git a/sapi/fuzzer/corpus/json/7.json b/sapi/fuzzer/corpus/json/7.json new file mode 100644 index 00000000000..6e74debaf0f --- /dev/null +++ b/sapi/fuzzer/corpus/json/7.json @@ -0,0 +1,2 @@ +["\ud834\udd00"] + diff --git a/sapi/fuzzer/corpus/json/8.json b/sapi/fuzzer/corpus/json/8.json new file mode 100644 index 00000000000..7ea60c3af9b --- /dev/null +++ b/sapi/fuzzer/corpus/json/8.json @@ -0,0 +1 @@ +{"zero": 0e0} diff --git a/sapi/fuzzer/corpus/json/9.json b/sapi/fuzzer/corpus/json/9.json new file mode 100644 index 00000000000..49e7327986b --- /dev/null +++ b/sapi/fuzzer/corpus/json/9.json @@ -0,0 +1 @@ +[null,null,"abc"] diff --git a/sapi/fuzzer/corpus/json/fail1.json b/sapi/fuzzer/corpus/json/fail1.json new file mode 100644 index 00000000000..6216b865f10 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail1.json @@ -0,0 +1 @@ +"A JSON payload should be an object or array, not a string." \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail10.json b/sapi/fuzzer/corpus/json/fail10.json new file mode 100644 index 00000000000..5d8c0047bd5 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail10.json @@ -0,0 +1 @@ +{"Extra value after close": true} "misplaced quoted value" \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail11.json b/sapi/fuzzer/corpus/json/fail11.json new file mode 100644 index 00000000000..76eb95b4583 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail11.json @@ -0,0 +1 @@ +{"Illegal expression": 1 + 2} \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail12.json b/sapi/fuzzer/corpus/json/fail12.json new file mode 100644 index 00000000000..77580a4522d --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail12.json @@ -0,0 +1 @@ +{"Illegal invocation": alert()} \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail13.json b/sapi/fuzzer/corpus/json/fail13.json new file mode 100644 index 00000000000..379406b59bd --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail13.json @@ -0,0 +1 @@ +{"Numbers cannot have leading zeroes": 013} \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail14.json b/sapi/fuzzer/corpus/json/fail14.json new file mode 100644 index 00000000000..0ed366b38a3 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail14.json @@ -0,0 +1 @@ +{"Numbers cannot be hex": 0x14} \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail15.json b/sapi/fuzzer/corpus/json/fail15.json new file mode 100644 index 00000000000..fc8376b605d --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail15.json @@ -0,0 +1 @@ +["Illegal backslash escape: \x15"] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail16.json b/sapi/fuzzer/corpus/json/fail16.json new file mode 100644 index 00000000000..3fe21d4b532 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail16.json @@ -0,0 +1 @@ +[\naked] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail17.json b/sapi/fuzzer/corpus/json/fail17.json new file mode 100644 index 00000000000..62b9214aeda --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail17.json @@ -0,0 +1 @@ +["Illegal backslash escape: \017"] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail18.json b/sapi/fuzzer/corpus/json/fail18.json new file mode 100644 index 00000000000..edac92716f1 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail18.json @@ -0,0 +1 @@ +[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail19.json b/sapi/fuzzer/corpus/json/fail19.json new file mode 100644 index 00000000000..3b9c46fa9a2 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail19.json @@ -0,0 +1 @@ +{"Missing colon" null} \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail2.json b/sapi/fuzzer/corpus/json/fail2.json new file mode 100644 index 00000000000..6b7c11e5a56 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail2.json @@ -0,0 +1 @@ +["Unclosed array" \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail20.json b/sapi/fuzzer/corpus/json/fail20.json new file mode 100644 index 00000000000..27c1af3e72e --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail20.json @@ -0,0 +1 @@ +{"Double colon":: null} \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail21.json b/sapi/fuzzer/corpus/json/fail21.json new file mode 100644 index 00000000000..62474573b21 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail21.json @@ -0,0 +1 @@ +{"Comma instead of colon", null} \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail22.json b/sapi/fuzzer/corpus/json/fail22.json new file mode 100644 index 00000000000..a7752581bcf --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail22.json @@ -0,0 +1 @@ +["Colon instead of comma": false] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail23.json b/sapi/fuzzer/corpus/json/fail23.json new file mode 100644 index 00000000000..494add1ca19 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail23.json @@ -0,0 +1 @@ +["Bad value", truth] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail24.json b/sapi/fuzzer/corpus/json/fail24.json new file mode 100644 index 00000000000..caff239bfc3 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail24.json @@ -0,0 +1 @@ +['single quote'] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail25.json b/sapi/fuzzer/corpus/json/fail25.json new file mode 100644 index 00000000000..8b7ad23e010 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail25.json @@ -0,0 +1 @@ +[" tab character in string "] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail26.json b/sapi/fuzzer/corpus/json/fail26.json new file mode 100644 index 00000000000..845d26a6a54 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail26.json @@ -0,0 +1 @@ +["tab\ character\ in\ string\ "] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail27.json b/sapi/fuzzer/corpus/json/fail27.json new file mode 100644 index 00000000000..6b01a2ca4a9 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail27.json @@ -0,0 +1,2 @@ +["line +break"] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail28.json b/sapi/fuzzer/corpus/json/fail28.json new file mode 100644 index 00000000000..621a0101c66 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail28.json @@ -0,0 +1,2 @@ +["line\ +break"] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail29.json b/sapi/fuzzer/corpus/json/fail29.json new file mode 100644 index 00000000000..47ec421bb62 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail29.json @@ -0,0 +1 @@ +[0e] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail3.json b/sapi/fuzzer/corpus/json/fail3.json new file mode 100644 index 00000000000..168c81eb785 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail3.json @@ -0,0 +1 @@ +{unquoted_key: "keys must be quoted"} \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail30.json b/sapi/fuzzer/corpus/json/fail30.json new file mode 100644 index 00000000000..8ab0bc4b8b2 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail30.json @@ -0,0 +1 @@ +[0e+] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail31.json b/sapi/fuzzer/corpus/json/fail31.json new file mode 100644 index 00000000000..1cce602b518 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail31.json @@ -0,0 +1 @@ +[0e+-1] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail32.json b/sapi/fuzzer/corpus/json/fail32.json new file mode 100644 index 00000000000..45cba7396ff --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail32.json @@ -0,0 +1 @@ +{"Comma instead if closing brace": true, \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail33.json b/sapi/fuzzer/corpus/json/fail33.json new file mode 100644 index 00000000000..ca5eb19dc97 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail33.json @@ -0,0 +1 @@ +["mismatch"} \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail4.json b/sapi/fuzzer/corpus/json/fail4.json new file mode 100644 index 00000000000..9de168bf34e --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail4.json @@ -0,0 +1 @@ +["extra comma",] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail5.json b/sapi/fuzzer/corpus/json/fail5.json new file mode 100644 index 00000000000..ddf3ce3d240 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail5.json @@ -0,0 +1 @@ +["double extra comma",,] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail6.json b/sapi/fuzzer/corpus/json/fail6.json new file mode 100644 index 00000000000..ed91580e1b1 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail6.json @@ -0,0 +1 @@ +[ , "<-- missing value"] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail7.json b/sapi/fuzzer/corpus/json/fail7.json new file mode 100644 index 00000000000..8a96af3e4ee --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail7.json @@ -0,0 +1 @@ +["Comma after the close"], \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail8.json b/sapi/fuzzer/corpus/json/fail8.json new file mode 100644 index 00000000000..b28479c6ecb --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail8.json @@ -0,0 +1 @@ +["Extra close"]] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/fail9.json b/sapi/fuzzer/corpus/json/fail9.json new file mode 100644 index 00000000000..5815574f363 --- /dev/null +++ b/sapi/fuzzer/corpus/json/fail9.json @@ -0,0 +1 @@ +{"Extra comma": true,} \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/pass1.json b/sapi/fuzzer/corpus/json/pass1.json new file mode 100644 index 00000000000..70e26854369 --- /dev/null +++ b/sapi/fuzzer/corpus/json/pass1.json @@ -0,0 +1,58 @@ +[ + "JSON Test Pattern pass1", + {"object with 1 member":["array with 1 element"]}, + {}, + [], + -42, + true, + false, + null, + { + "integer": 1234567890, + "real": -9876.543210, + "e": 0.123456789e-12, + "E": 1.234567890E+34, + "": 23456789012E66, + "zero": 0, + "one": 1, + "space": " ", + "quote": "\"", + "backslash": "\\", + "controls": "\b\f\n\r\t", + "slash": "/ & \/", + "alpha": "abcdefghijklmnopqrstuvwyz", + "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ", + "digit": "0123456789", + "0123456789": "digit", + "special": "`1~!@#$%^&*()_+-={':[,]}|;.?", + "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A", + "true": true, + "false": false, + "null": null, + "array":[ ], + "object":{ }, + "address": "50 St. James Street", + "url": "http://www.JSON.org/", + "comment": "// /* */": " ", + " s p a c e d " :[1,2 , 3 + +, + +4 , 5 , 6 ,7 ],"compact":[1,2,3,4,5,6,7], + "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}", + "quotes": "" \u0022 %22 0x22 034 "", + "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?" +: "A key can be any string" + }, + 0.5 ,98.6 +, +99.44 +, + +1066, +1e1, +0.1e1, +1e-1, +1e00,2e+00,2e-00 +,"rosebud"] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/pass2.json b/sapi/fuzzer/corpus/json/pass2.json new file mode 100644 index 00000000000..d3c63c7ad84 --- /dev/null +++ b/sapi/fuzzer/corpus/json/pass2.json @@ -0,0 +1 @@ +[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]] \ No newline at end of file diff --git a/sapi/fuzzer/corpus/json/pass3.json b/sapi/fuzzer/corpus/json/pass3.json new file mode 100644 index 00000000000..4528d51f1ac --- /dev/null +++ b/sapi/fuzzer/corpus/json/pass3.json @@ -0,0 +1,6 @@ +{ + "JSON Test Pattern pass3": { + "The outermost value": "must be an object or array.", + "In this test": "It is an object." + } +} diff --git a/sapi/fuzzer/fuzzer-exif.c b/sapi/fuzzer/fuzzer-exif.c new file mode 100644 index 00000000000..574f3393d22 --- /dev/null +++ b/sapi/fuzzer/fuzzer-exif.c @@ -0,0 +1,65 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 7 | + +----------------------------------------------------------------------+ + | Copyright (c) The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Stanislav Malyshev | + +----------------------------------------------------------------------+ + */ + +#include "fuzzer.h" + +#include "Zend/zend.h" +#include "main/php_config.h" +#include "main/php_main.h" +#include "ext/standard/php_var.h" + +#include +#include +#include +#include +#include +#include + +#include "fuzzer-sapi.h" + +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { + char *filename; + int filedes; + + if (php_request_startup()==FAILURE) { + php_module_shutdown(); + return 0; + } + + /* put the data in a file */ + filename = tmpnam(NULL); + filedes = open(filename, O_CREAT|O_RDWR); + write(filedes, Data, Size); + close(filedes); + + fuzzer_call_php_func("exif_read_data", 1, &filename); + + /* cleanup */ + unlink(filename); + php_request_shutdown(NULL); + + return 0; +} + +int LLVMFuzzerInitialize(int *argc, char ***argv) { + fuzzer_init_php(); + + /* fuzzer_shutdown_php(); */ + return 0; +} + diff --git a/sapi/fuzzer/fuzzer-json.c b/sapi/fuzzer/fuzzer-json.c new file mode 100644 index 00000000000..0c619a22b9b --- /dev/null +++ b/sapi/fuzzer/fuzzer-json.c @@ -0,0 +1,73 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 7 | + +----------------------------------------------------------------------+ + | Copyright (c) The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Johannes Schlüter | + | Stanislav Malyshev | + +----------------------------------------------------------------------+ + */ + + + +#include "fuzzer.h" + +#include "Zend/zend.h" +#include "main/php_config.h" +#include "main/php_main.h" + +#include +#include +#include + +#include "fuzzer-sapi.h" + +#ifdef HAVE_JSON +#include "ext/json/php_json_parser.h" +#endif + +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +#ifdef HAVE_JSON + char *data = malloc(Size+1); + memcpy(data, Data, Size); + data[Size] = '\0'; + + if (php_request_startup()==FAILURE) { + php_module_shutdown(); + return 0; + } + + for (int option = 0; option <=1; ++option) { + zval result; + php_json_parser parser; + php_json_parser_init(&parser, &result, data, Size, option, 10); + php_json_yyparse(&parser); + + ZVAL_UNDEF(&result); + } + + php_request_shutdown(NULL); + + free(data); +#else + fprintf(stderr, "\n\nERROR:\nPHP built without JSON, recompile with --enable-json to use this fuzzer\n"); + exit(1); +#endif + return 0; +} + +int LLVMFuzzerInitialize(int *argc, char ***argv) { + fuzzer_init_php(); + + /* fuzzer_shutdown_php(); */ + return 0; +} diff --git a/sapi/fuzzer/fuzzer-mbstring.c b/sapi/fuzzer/fuzzer-mbstring.c new file mode 100644 index 00000000000..aaeef1ce8a6 --- /dev/null +++ b/sapi/fuzzer/fuzzer-mbstring.c @@ -0,0 +1,75 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 7 | + +----------------------------------------------------------------------+ + | Copyright (c) The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Stanislav Malyshev | + +----------------------------------------------------------------------+ + */ + + +#include "fuzzer.h" + +#include "Zend/zend.h" +#include "main/php_config.h" +#include "main/php_main.h" + +#include +#include +#include + +#include "fuzzer-sapi.h" + +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +#ifdef HAVE_MBREGEX + char *args[2]; + char *data = malloc(Size+1); + memcpy(data, Data, Size); + data[Size] = '\0'; + + if (php_request_startup()==FAILURE) { + php_module_shutdown(); + return 0; + } + + args[0] = data; + args[1] = "test123"; + fuzzer_call_php_func("mb_ereg", 2, args); + + args[0] = data; + args[1] = "test123"; + fuzzer_call_php_func("mb_eregi", 2, args); + + args[0] = data; + args[1] = data; + fuzzer_call_php_func("mb_ereg", 2, args); + + args[0] = data; + args[1] = data; + fuzzer_call_php_func("mb_eregi", 2, args); + + php_request_shutdown(NULL); + + free(data); +#else + fprintf(stderr, "\n\nERROR:\nPHP built without mbstring, recompile with --enable-mbstring to use this fuzzer\n"); + exit(1); +#endif + return 0; +} + +int LLVMFuzzerInitialize(int *argc, char ***argv) { + fuzzer_init_php(); + + /* fuzzer_shutdown_php(); */ + return 0; +} diff --git a/sapi/fuzzer/fuzzer-parser.c b/sapi/fuzzer/fuzzer-parser.c new file mode 100644 index 00000000000..eb1e03b6e8a --- /dev/null +++ b/sapi/fuzzer/fuzzer-parser.c @@ -0,0 +1,80 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 7 | + +----------------------------------------------------------------------+ + | Copyright (c) The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Johannes Schlüter | + | Stanislav Malyshev | + +----------------------------------------------------------------------+ + */ + +#include
+#include
+#include
+#include +#include +#include
+#ifdef JO0 +#include +#endif + +#include "fuzzer.h" + +#include "fuzzer-sapi.h" + +int fuzzer_do_parse(zend_file_handle *file_handle, char *filename) +{ + int retval = FAILURE; /* failure by default */ + + SG(options) |= SAPI_OPTION_NO_CHDIR; + SG(request_info).argc=0; + SG(request_info).argv=NULL; + + if (php_request_startup(TSRMLS_C)==FAILURE) { + php_module_shutdown(TSRMLS_C); + return FAILURE; + } + + SG(headers_sent) = 1; + SG(request_info).no_headers = 1; + php_register_variable("PHP_SELF", filename, NULL TSRMLS_CC); + + zend_first_try { + zend_compile_file(file_handle, ZEND_REQUIRE); + //retval = php_execute_script(file_handle TSRMLS_CC); + } zend_end_try(); + + php_request_shutdown((void *) 0); + + return (retval == SUCCESS) ? SUCCESS : FAILURE; +} + +int fuzzer_do_request_d(char *filename, char *data, size_t data_len); + +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { + char *s = malloc(Size+1); + memcpy(s, Data, Size); + s[Size] = '\0'; + + fuzzer_do_request_d("fuzzer.php", Data, Size); + //fuzzer_do_parse(&file_handle, "fuzzer.php"); + + free(s); + return 0; +} + +int LLVMFuzzerInitialize(int *argc, char ***argv) { + fuzzer_init_php(); + + /* fuzzer_shutdown_php(); */ + return 0; +} diff --git a/sapi/fuzzer/fuzzer-sapi.c b/sapi/fuzzer/fuzzer-sapi.c new file mode 100644 index 00000000000..dd26c3c103f --- /dev/null +++ b/sapi/fuzzer/fuzzer-sapi.c @@ -0,0 +1,242 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 7 | + +----------------------------------------------------------------------+ + | Copyright (c) The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Johannes Schlüter | + | Stanislav Malyshev | + +----------------------------------------------------------------------+ + */ + +#include
+#include
+#include
+#include +#include +#include
+ +#include "fuzzer.h" +#include "fuzzer-sapi.h" + +const char HARDCODED_INI[] = + "html_errors=0\n" + "implicit_flush=1\n" + "max_execution_time=20\n" + "output_buffering=0\n"; + +static int startup(sapi_module_struct *sapi_module) +{ + if (php_module_startup(sapi_module, NULL, 0)==FAILURE) { + return FAILURE; + } + return SUCCESS; +} + +static size_t ub_write(const char *str, size_t str_length TSRMLS_DC) +{ + /* quiet */ + return str_length; +} + +static void fuzzer_flush(void *server_context) +{ + /* quiet */ +} + +static void send_header(sapi_header_struct *sapi_header, void *server_context TSRMLS_DC) +{ +} + +static char* read_cookies(TSRMLS_D) +{ + /* TODO: fuzz these! */ + return NULL; +} + +static void register_variables(zval *track_vars_array TSRMLS_DC) +{ + php_import_environment_variables(track_vars_array TSRMLS_CC); +} + +static void log_message(char *message, int level TSRMLS_DC) +{ +} + + +static sapi_module_struct fuzzer_module = { + "fuzzer", /* name */ + "clang fuzzer", /* pretty name */ + + startup, /* startup */ + php_module_shutdown_wrapper, /* shutdown */ + + NULL, /* activate */ + NULL, /* deactivate */ + + ub_write, /* unbuffered write */ + fuzzer_flush, /* flush */ + NULL, /* get uid */ + NULL, /* getenv */ + + php_error, /* error handler */ + + NULL, /* header handler */ + NULL, /* send headers handler */ + send_header, /* send header handler */ + + NULL, /* read POST data */ + read_cookies, /* read Cookies */ + + register_variables, /* register server variables */ + log_message, /* Log message */ + NULL, /* Get request time */ + NULL, /* Child terminate */ + + STANDARD_SAPI_MODULE_PROPERTIES +}; + +int fuzzer_init_php() +{ + sapi_startup(&fuzzer_module); + fuzzer_module.phpinfo_as_text = 1; + + fuzzer_module.ini_entries = malloc(sizeof(HARDCODED_INI)); + memcpy(fuzzer_module.ini_entries, HARDCODED_INI, sizeof(HARDCODED_INI)); + + /* + * TODO: we might want to test both Zend and malloc MM, but testing with malloc + * is more likely to find bugs, so use that for now. + */ + putenv("USE_ZEND_ALLOC=0"); + +#ifdef __SANITIZE_ADDRESS__ + /* Not very interested in memory leak detection, since Zend MM does that */ + __lsan_disable(); +#endif + + if (fuzzer_module.startup(&fuzzer_module)==FAILURE) { + return FAILURE; + } + + return SUCCESS; +} + +void fuzzer_set_ini_file(const char *file) +{ + if (fuzzer_module.php_ini_path_override) { + free(fuzzer_module.php_ini_path_override); + } + fuzzer_module.php_ini_path_override = strdup(file); +} + + +int fuzzer_shutdown_php() +{ + TSRMLS_FETCH(); + + php_module_shutdown(TSRMLS_C); + sapi_shutdown(); + + free(fuzzer_module.ini_entries); + return SUCCESS; +} + +int fuzzer_do_request(zend_file_handle *file_handle, char *filename) +{ + int retval = FAILURE; /* failure by default */ + + SG(options) |= SAPI_OPTION_NO_CHDIR; + SG(request_info).argc=0; + SG(request_info).argv=NULL; + + if (php_request_startup(TSRMLS_C)==FAILURE) { + php_module_shutdown(TSRMLS_C); + return FAILURE; + } + + SG(headers_sent) = 1; + SG(request_info).no_headers = 1; + php_register_variable("PHP_SELF", filename, NULL TSRMLS_CC); + + zend_first_try { + zend_compile_file(file_handle, ZEND_REQUIRE); + /*retval = php_execute_script(file_handle TSRMLS_CC);*/ + } zend_end_try(); + + php_request_shutdown((void *) 0); + + return (retval == SUCCESS) ? SUCCESS : FAILURE; +} + + +int fuzzer_do_request_f(char *filename) +{ + zend_file_handle file_handle; + file_handle.type = ZEND_HANDLE_FILENAME; + file_handle.filename = filename; + file_handle.handle.fp = NULL; + file_handle.opened_path = NULL; + + return fuzzer_do_request(&file_handle, filename); +} + +int fuzzer_do_request_d(char *filename, char *data, size_t data_len) +{ + zend_file_handle file_handle; + file_handle.filename = filename; + file_handle.opened_path = NULL; + file_handle.handle.stream.handle = NULL; + file_handle.handle.stream.reader = (zend_stream_reader_t)_php_stream_read; + file_handle.handle.stream.fsizer = NULL; + file_handle.handle.stream.isatty = 0; + file_handle.handle.stream.closer = NULL; + file_handle.buf = data; + file_handle.len = data_len; + file_handle.type = ZEND_HANDLE_STREAM; + + return fuzzer_do_request(&file_handle, filename); +} + +// Call named PHP function with N zval arguments +void fuzzer_call_php_func_zval(const char *func_name, int nargs, zval *args) { + zval retval, func; + int result; + + ZVAL_STRING(&func, func_name); + ZVAL_UNDEF(&retval); + result = call_user_function(CG(function_table), NULL, &func, &retval, nargs, args); + + // TODO: check result? + /* to ensure retval is not broken */ + php_var_dump(&retval, 0); + + /* cleanup */ + zval_ptr_dtor(&retval); + zval_ptr_dtor(&func); +} + +// Call named PHP function with N string arguments +void fuzzer_call_php_func(const char *func_name, int nargs, char **params) { + zval args[nargs]; + int i; + + for(i=0;i | + | Stanislav Malyshev | + +----------------------------------------------------------------------+ + */ + +int fuzzer_init_php(); +void fuzzer_call_php_func(const char *func_name, int nargs, char **params); +void fuzzer_call_php_func_zval(const char *func_name, int nargs, zval *args); diff --git a/sapi/fuzzer/fuzzer-unserialize.c b/sapi/fuzzer/fuzzer-unserialize.c new file mode 100644 index 00000000000..9b843f25fe1 --- /dev/null +++ b/sapi/fuzzer/fuzzer-unserialize.c @@ -0,0 +1,66 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 7 | + +----------------------------------------------------------------------+ + | Copyright (c) The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Johannes Schlüter | + +----------------------------------------------------------------------+ + */ + + +#include "fuzzer.h" + +#include "Zend/zend.h" +#include "main/php_config.h" +#include "main/php_main.h" + +#include +#include +#include + +#include "fuzzer-sapi.h" + +#include "ext/standard/php_var.h" + +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { + unsigned char *data = malloc(Size+1); + + memcpy(data, Data, Size); + data[Size] = '\0'; + + if (php_request_startup()==FAILURE) { + php_module_shutdown(); + return 0; + } + + zval result; + + php_unserialize_data_t var_hash; + PHP_VAR_UNSERIALIZE_INIT(var_hash); + php_var_unserialize(&result, &data, data + Size, &var_hash); + PHP_VAR_UNSERIALIZE_DESTROY(var_hash); + + zval_ptr_dtor(&result); + + php_request_shutdown(NULL); + + free(data); + + return 0; +} + +int LLVMFuzzerInitialize(int *argc, char ***argv) { + fuzzer_init_php(); + + /* fuzzer_shutdown_php(); */ + return 0; +} diff --git a/sapi/fuzzer/fuzzer.h b/sapi/fuzzer/fuzzer.h new file mode 100644 index 00000000000..b0bae1c7bc9 --- /dev/null +++ b/sapi/fuzzer/fuzzer.h @@ -0,0 +1,20 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 7 | + +----------------------------------------------------------------------+ + | Copyright (c) The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Johannes Schlüter | + +----------------------------------------------------------------------+ + */ + +#include "php_version.h" +#define FUZZER_VERSION PHP_VERSION diff --git a/sapi/fuzzer/json.dict b/sapi/fuzzer/json.dict new file mode 100644 index 00000000000..e08245a2194 --- /dev/null +++ b/sapi/fuzzer/json.dict @@ -0,0 +1,52 @@ +# +# AFL dictionary for JSON +# ----------------------- +# +# Just the very basics. +# +# Inspired by a dictionary by Jakub Wilk +# + +"0" +",0" +":0" +"0:" +"-1.2e+3" + +"true" +"false" +"null" + +"\"\"" +",\"\"" +":\"\"" +"\"\":" + +"{}" +",{}" +":{}" +"{\"\":0}" +"{{}}" + +"[]" +",[]" +":[]" +"[0]" +"[[]]" + +"''" +"\\" +"\\b" +"\\f" +"\\n" +"\\r" +"\\t" +"\\u0000" +"\\x00" +"\\0" +"\\uD800\\uDC00" +"\\uDBFF\\uDFFF" + +"\"\":0" +"//" +"/**/"