summaryrefslogtreecommitdiff
path: root/support/cJSON-master/fuzzing
diff options
context:
space:
mode:
authorlijie <[email protected]>2018-12-18 14:13:02 +0800
committerlijie <[email protected]>2018-12-18 14:13:02 +0800
commita4abef91b597f226f918f506e7ff591a77f3b126 (patch)
treeb16c769bb9ec312b832b28d7315110f7daecc631 /support/cJSON-master/fuzzing
parentfc99454ea9bce35065e34b28815f8cf417b37804 (diff)
修改包含cjson头文件形式,添加mrl的cjson源码v2.0.0
Diffstat (limited to 'support/cJSON-master/fuzzing')
-rw-r--r--support/cJSON-master/fuzzing/.gitignore1
-rw-r--r--support/cJSON-master/fuzzing/CMakeLists.txt28
-rw-r--r--support/cJSON-master/fuzzing/afl-prepare-linux.sh5
-rw-r--r--support/cJSON-master/fuzzing/afl.c176
-rw-r--r--support/cJSON-master/fuzzing/afl.sh9
-rw-r--r--support/cJSON-master/fuzzing/inputs/test122
-rw-r--r--support/cJSON-master/fuzzing/inputs/test101
-rw-r--r--support/cJSON-master/fuzzing/inputs/test118
-rw-r--r--support/cJSON-master/fuzzing/inputs/test211
-rw-r--r--support/cJSON-master/fuzzing/inputs/test326
-rw-r--r--support/cJSON-master/fuzzing/inputs/test3.bu26
-rw-r--r--support/cJSON-master/fuzzing/inputs/test3.uf26
-rw-r--r--support/cJSON-master/fuzzing/inputs/test3.uu26
-rw-r--r--support/cJSON-master/fuzzing/inputs/test488
-rw-r--r--support/cJSON-master/fuzzing/inputs/test527
-rw-r--r--support/cJSON-master/fuzzing/inputs/test616
-rw-r--r--support/cJSON-master/fuzzing/inputs/test722
-rw-r--r--support/cJSON-master/fuzzing/inputs/test813
-rw-r--r--support/cJSON-master/fuzzing/inputs/test95
-rw-r--r--support/cJSON-master/fuzzing/json.dict47
20 files changed, 583 insertions, 0 deletions
diff --git a/support/cJSON-master/fuzzing/.gitignore b/support/cJSON-master/fuzzing/.gitignore
new file mode 100644
index 0000000..c82a262
--- /dev/null
+++ b/support/cJSON-master/fuzzing/.gitignore
@@ -0,0 +1 @@
+afl-build
diff --git a/support/cJSON-master/fuzzing/CMakeLists.txt b/support/cJSON-master/fuzzing/CMakeLists.txt
new file mode 100644
index 0000000..fdd7126
--- /dev/null
+++ b/support/cJSON-master/fuzzing/CMakeLists.txt
@@ -0,0 +1,28 @@
+option(ENABLE_FUZZING "Create executables and targets for fuzzing cJSON with afl." Off)
+if (ENABLE_FUZZING)
+ find_program(AFL_FUZZ afl-fuzz)
+ if ("${AFL_FUZZ}" MATCHES "AFL_FUZZ-NOTFOUND")
+ message(FATAL_ERROR "Couldn't find afl-fuzz.")
+ endif()
+
+ add_executable(afl-main afl.c)
+ target_link_libraries(afl-main "${CJSON_LIB}")
+
+ if (NOT ENABLE_SANITIZERS)
+ message(FATAL_ERROR "Enable sanitizers with -DENABLE_SANITIZERS=On to do fuzzing.")
+ endif()
+
+ option(ENABLE_FUZZING_PRINT "Fuzz printing functions together with parser." On)
+ set(fuzz_print_parameter "no")
+ if (ENABLE_FUZZING_PRINT)
+ set(fuzz_print_parameter "yes")
+ endif()
+
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error")
+
+ add_custom_target(afl
+ COMMAND "${AFL_FUZZ}" -i "${CMAKE_CURRENT_SOURCE_DIR}/inputs" -o "${CMAKE_CURRENT_BINARY_DIR}/findings" -x "${CMAKE_CURRENT_SOURCE_DIR}/json.dict" -- "${CMAKE_CURRENT_BINARY_DIR}/afl-main" "@@" "${fuzz_print_parameter}"
+ DEPENDS afl-main)
+
+
+endif()
diff --git a/support/cJSON-master/fuzzing/afl-prepare-linux.sh b/support/cJSON-master/fuzzing/afl-prepare-linux.sh
new file mode 100644
index 0000000..41c9b89
--- /dev/null
+++ b/support/cJSON-master/fuzzing/afl-prepare-linux.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+set -x
+echo core | sudo tee /proc/sys/kernel/core_pattern
+echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
diff --git a/support/cJSON-master/fuzzing/afl.c b/support/cJSON-master/fuzzing/afl.c
new file mode 100644
index 0000000..036ed14
--- /dev/null
+++ b/support/cJSON-master/fuzzing/afl.c
@@ -0,0 +1,176 @@
+/*
+ Copyright (c) 2009-2017 Dave Gamble and cJSON contributors
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "../cJSON.h"
+
+static char *read_file(const char *filename)
+{
+ FILE *file = NULL;
+ long length = 0;
+ char *content = NULL;
+ size_t read_chars = 0;
+
+ /* open in read binary mode */
+ file = fopen(filename, "rb");
+ if (file == NULL)
+ {
+ goto cleanup;
+ }
+
+ /* get the length */
+ if (fseek(file, 0, SEEK_END) != 0)
+ {
+ goto cleanup;
+ }
+ length = ftell(file);
+ if (length < 0)
+ {
+ goto cleanup;
+ }
+ if (fseek(file, 0, SEEK_SET) != 0)
+ {
+ goto cleanup;
+ }
+
+ /* allocate content buffer */
+ content = (char*)malloc((size_t)length + sizeof(""));
+ if (content == NULL)
+ {
+ goto cleanup;
+ }
+
+ /* read the file into memory */
+ read_chars = fread(content, sizeof(char), (size_t)length, file);
+ if ((long)read_chars != length)
+ {
+ free(content);
+ content = NULL;
+ goto cleanup;
+ }
+ content[read_chars] = '\0';
+
+
+cleanup:
+ if (file != NULL)
+ {
+ fclose(file);
+ }
+
+ return content;
+}
+
+int main(int argc, char** argv)
+{
+ const char *filename = NULL;
+ cJSON *item = NULL;
+ char *json = NULL;
+ int status = EXIT_FAILURE;
+ char *printed_json = NULL;
+
+ if ((argc < 2) || (argc > 3))
+ {
+ printf("Usage:\n");
+ printf("%s input_file [enable_printing]\n", argv[0]);
+ printf("\t input_file: file containing the test data\n");
+ printf("\t enable_printing: print after parsing, 'yes' or 'no', defaults to 'no'\n");
+ goto cleanup;
+ }
+
+ filename = argv[1];
+
+#if __AFL_HAVE_MANUAL_CONTROL
+ while (__AFL_LOOP(1000))
+ {
+#endif
+ status = EXIT_SUCCESS;
+
+ json = read_file(filename);
+ if ((json == NULL) || (json[0] == '\0') || (json[1] == '\0'))
+ {
+ status = EXIT_FAILURE;
+ goto cleanup;
+ }
+ item = cJSON_Parse(json + 2);
+ if (item == NULL)
+ {
+ goto cleanup;
+ }
+
+ if ((argc == 3) && (strncmp(argv[2], "yes", 3) == 0))
+ {
+ int do_format = 0;
+ if (json[1] == 'f')
+ {
+ do_format = 1;
+ }
+
+ if (json[0] == 'b')
+ {
+ /* buffered printing */
+ printed_json = cJSON_PrintBuffered(item, 1, do_format);
+ }
+ else
+ {
+ /* unbuffered printing */
+ if (do_format)
+ {
+ printed_json = cJSON_Print(item);
+ }
+ else
+ {
+ printed_json = cJSON_PrintUnformatted(item);
+ }
+ }
+ if (printed_json == NULL)
+ {
+ status = EXIT_FAILURE;
+ goto cleanup;
+ }
+ printf("%s\n", printed_json);
+ }
+
+cleanup:
+ if (item != NULL)
+ {
+ cJSON_Delete(item);
+ item = NULL;
+ }
+ if (json != NULL)
+ {
+ free(json);
+ json = NULL;
+ }
+ if (printed_json != NULL)
+ {
+ free(printed_json);
+ printed_json = NULL;
+ }
+#if __AFL_HAVE_MANUAL_CONTROL
+ }
+#endif
+
+ return status;
+}
diff --git a/support/cJSON-master/fuzzing/afl.sh b/support/cJSON-master/fuzzing/afl.sh
new file mode 100644
index 0000000..8f0f02f
--- /dev/null
+++ b/support/cJSON-master/fuzzing/afl.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+mkdir -p afl-build || exit 1
+cd afl-build || exit 1
+#cleanup
+rm -r -- *
+
+CC=afl-clang-fast cmake ../.. -DENABLE_FUZZING=On -DENABLE_SANITIZERS=On -DBUILD_SHARED_LIBS=Off
+make afl
diff --git a/support/cJSON-master/fuzzing/inputs/test1 b/support/cJSON-master/fuzzing/inputs/test1
new file mode 100644
index 0000000..6a0c0d7
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test1
@@ -0,0 +1,22 @@
+bf{
+ "glossary": {
+ "title": "example glossary",
+ "GlossDiv": {
+ "title": "S",
+ "GlossList": {
+ "GlossEntry": {
+ "ID": "SGML",
+ "SortAs": "SGML",
+ "GlossTerm": "Standard Generalized Markup Language",
+ "Acronym": "SGML",
+ "Abbrev": "ISO 8879:1986",
+ "GlossDef": {
+ "para": "A meta-markup language, used to create markup languages such as DocBook.",
+ "GlossSeeAlso": ["GML", "XML"]
+ },
+ "GlossSee": "markup"
+ }
+ }
+ }
+ }
+}
diff --git a/support/cJSON-master/fuzzing/inputs/test10 b/support/cJSON-master/fuzzing/inputs/test10
new file mode 100644
index 0000000..01e9a82
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test10
@@ -0,0 +1 @@
+bf["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
diff --git a/support/cJSON-master/fuzzing/inputs/test11 b/support/cJSON-master/fuzzing/inputs/test11
new file mode 100644
index 0000000..e81d60d
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test11
@@ -0,0 +1,8 @@
+bf{
+"name": "Jack (\"Bee\") Nimble",
+"format": {"type": "rect",
+"width": 1920,
+"height": 1080,
+"interlace": false,"frame rate": 24
+}
+}
diff --git a/support/cJSON-master/fuzzing/inputs/test2 b/support/cJSON-master/fuzzing/inputs/test2
new file mode 100644
index 0000000..3fdf8cb
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test2
@@ -0,0 +1,11 @@
+bf{"menu": {
+ "id": "file",
+ "value": "File",
+ "popup": {
+ "menuitem": [
+ {"value": "New", "onclick": "CreateNewDoc()"},
+ {"value": "Open", "onclick": "OpenDoc()"},
+ {"value": "Close", "onclick": "CloseDoc()"}
+ ]
+ }
+}}
diff --git a/support/cJSON-master/fuzzing/inputs/test3 b/support/cJSON-master/fuzzing/inputs/test3
new file mode 100644
index 0000000..11edd2f
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test3
@@ -0,0 +1,26 @@
+bf{"widget": {
+ "debug": "on",
+ "window": {
+ "title": "Sample Konfabulator Widget",
+ "name": "main_window",
+ "width": 500,
+ "height": 500
+ },
+ "image": {
+ "src": "Images/Sun.png",
+ "name": "sun1",
+ "hOffset": 250,
+ "vOffset": 250,
+ "alignment": "center"
+ },
+ "text": {
+ "data": "Click Here",
+ "size": 36,
+ "style": "bold",
+ "name": "text1",
+ "hOffset": 250,
+ "vOffset": 100,
+ "alignment": "center",
+ "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
+ }
+}}
diff --git a/support/cJSON-master/fuzzing/inputs/test3.bu b/support/cJSON-master/fuzzing/inputs/test3.bu
new file mode 100644
index 0000000..eaac4e3
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test3.bu
@@ -0,0 +1,26 @@
+bu{"widget": {
+ "debug": "on",
+ "window": {
+ "title": "Sample Konfabulator Widget",
+ "name": "main_window",
+ "width": 500,
+ "height": 500
+ },
+ "image": {
+ "src": "Images/Sun.png",
+ "name": "sun1",
+ "hOffset": 250,
+ "vOffset": 250,
+ "alignment": "center"
+ },
+ "text": {
+ "data": "Click Here",
+ "size": 36,
+ "style": "bold",
+ "name": "text1",
+ "hOffset": 250,
+ "vOffset": 100,
+ "alignment": "center",
+ "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
+ }
+}}
diff --git a/support/cJSON-master/fuzzing/inputs/test3.uf b/support/cJSON-master/fuzzing/inputs/test3.uf
new file mode 100644
index 0000000..edad977
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test3.uf
@@ -0,0 +1,26 @@
+uf{"widget": {
+ "debug": "on",
+ "window": {
+ "title": "Sample Konfabulator Widget",
+ "name": "main_window",
+ "width": 500,
+ "height": 500
+ },
+ "image": {
+ "src": "Images/Sun.png",
+ "name": "sun1",
+ "hOffset": 250,
+ "vOffset": 250,
+ "alignment": "center"
+ },
+ "text": {
+ "data": "Click Here",
+ "size": 36,
+ "style": "bold",
+ "name": "text1",
+ "hOffset": 250,
+ "vOffset": 100,
+ "alignment": "center",
+ "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
+ }
+}}
diff --git a/support/cJSON-master/fuzzing/inputs/test3.uu b/support/cJSON-master/fuzzing/inputs/test3.uu
new file mode 100644
index 0000000..1356b6d
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test3.uu
@@ -0,0 +1,26 @@
+uu{"widget": {
+ "debug": "on",
+ "window": {
+ "title": "Sample Konfabulator Widget",
+ "name": "main_window",
+ "width": 500,
+ "height": 500
+ },
+ "image": {
+ "src": "Images/Sun.png",
+ "name": "sun1",
+ "hOffset": 250,
+ "vOffset": 250,
+ "alignment": "center"
+ },
+ "text": {
+ "data": "Click Here",
+ "size": 36,
+ "style": "bold",
+ "name": "text1",
+ "hOffset": 250,
+ "vOffset": 100,
+ "alignment": "center",
+ "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
+ }
+}}
diff --git a/support/cJSON-master/fuzzing/inputs/test4 b/support/cJSON-master/fuzzing/inputs/test4
new file mode 100644
index 0000000..943943d
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test4
@@ -0,0 +1,88 @@
+bf{"web-app": {
+ "servlet": [
+ {
+ "servlet-name": "cofaxCDS",
+ "servlet-class": "org.cofax.cds.CDSServlet",
+ "init-param": {
+ "configGlossary:installationAt": "Philadelphia, PA",
+ "configGlossary:adminEmail": "[email protected]",
+ "configGlossary:poweredBy": "Cofax",
+ "configGlossary:poweredByIcon": "/images/cofax.gif",
+ "configGlossary:staticPath": "/content/static",
+ "templateProcessorClass": "org.cofax.WysiwygTemplate",
+ "templateLoaderClass": "org.cofax.FilesTemplateLoader",
+ "templatePath": "templates",
+ "templateOverridePath": "",
+ "defaultListTemplate": "listTemplate.htm",
+ "defaultFileTemplate": "articleTemplate.htm",
+ "useJSP": false,
+ "jspListTemplate": "listTemplate.jsp",
+ "jspFileTemplate": "articleTemplate.jsp",
+ "cachePackageTagsTrack": 200,
+ "cachePackageTagsStore": 200,
+ "cachePackageTagsRefresh": 60,
+ "cacheTemplatesTrack": 100,
+ "cacheTemplatesStore": 50,
+ "cacheTemplatesRefresh": 15,
+ "cachePagesTrack": 200,
+ "cachePagesStore": 100,
+ "cachePagesRefresh": 10,
+ "cachePagesDirtyRead": 10,
+ "searchEngineListTemplate": "forSearchEnginesList.htm",
+ "searchEngineFileTemplate": "forSearchEngines.htm",
+ "searchEngineRobotsDb": "WEB-INF/robots.db",
+ "useDataStore": true,
+ "dataStoreClass": "org.cofax.SqlDataStore",
+ "redirectionClass": "org.cofax.SqlRedirection",
+ "dataStoreName": "cofax",
+ "dataStoreDriver": "com.microsoft.jdbc.sqlserver.SQLServerDriver",
+ "dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon",
+ "dataStoreUser": "sa",
+ "dataStorePassword": "dataStoreTestQuery",
+ "dataStoreTestQuery": "SET NOCOUNT ON;select test='test';",
+ "dataStoreLogFile": "/usr/local/tomcat/logs/datastore.log",
+ "dataStoreInitConns": 10,
+ "dataStoreMaxConns": 100,
+ "dataStoreConnUsageLimit": 100,
+ "dataStoreLogLevel": "debug",
+ "maxUrlLength": 500}},
+ {
+ "servlet-name": "cofaxEmail",
+ "servlet-class": "org.cofax.cds.EmailServlet",
+ "init-param": {
+ "mailHost": "mail1",
+ "mailHostOverride": "mail2"}},
+ {
+ "servlet-name": "cofaxAdmin",
+ "servlet-class": "org.cofax.cds.AdminServlet"},
+
+ {
+ "servlet-name": "fileServlet",
+ "servlet-class": "org.cofax.cds.FileServlet"},
+ {
+ "servlet-name": "cofaxTools",
+ "servlet-class": "org.cofax.cms.CofaxToolsServlet",
+ "init-param": {
+ "templatePath": "toolstemplates/",
+ "log": 1,
+ "logLocation": "/usr/local/tomcat/logs/CofaxTools.log",
+ "logMaxSize": "",
+ "dataLog": 1,
+ "dataLogLocation": "/usr/local/tomcat/logs/dataLog.log",
+ "dataLogMaxSize": "",
+ "removePageCache": "/content/admin/remove?cache=pages&id=",
+ "removeTemplateCache": "/content/admin/remove?cache=templates&id=",
+ "fileTransferFolder": "/usr/local/tomcat/webapps/content/fileTransferFolder",
+ "lookInContext": 1,
+ "adminGroupID": 4,
+ "betaServer": true}}],
+ "servlet-mapping": {
+ "cofaxCDS": "/",
+ "cofaxEmail": "/cofaxutil/aemail/*",
+ "cofaxAdmin": "/admin/*",
+ "fileServlet": "/static/*",
+ "cofaxTools": "/tools/*"},
+
+ "taglib": {
+ "taglib-uri": "cofax.tld",
+ "taglib-location": "/WEB-INF/tlds/cofax.tld"}}}
diff --git a/support/cJSON-master/fuzzing/inputs/test5 b/support/cJSON-master/fuzzing/inputs/test5
new file mode 100644
index 0000000..f6cc84e
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test5
@@ -0,0 +1,27 @@
+bf{"menu": {
+ "header": "SVG Viewer",
+ "items": [
+ {"id": "Open"},
+ {"id": "OpenNew", "label": "Open New"},
+ null,
+ {"id": "ZoomIn", "label": "Zoom In"},
+ {"id": "ZoomOut", "label": "Zoom Out"},
+ {"id": "OriginalView", "label": "Original View"},
+ null,
+ {"id": "Quality"},
+ {"id": "Pause"},
+ {"id": "Mute"},
+ null,
+ {"id": "Find", "label": "Find..."},
+ {"id": "FindAgain", "label": "Find Again"},
+ {"id": "Copy"},
+ {"id": "CopyAgain", "label": "Copy Again"},
+ {"id": "CopySVG", "label": "Copy SVG"},
+ {"id": "ViewSVG", "label": "View SVG"},
+ {"id": "ViewSource", "label": "View Source"},
+ {"id": "SaveAs", "label": "Save As"},
+ null,
+ {"id": "Help"},
+ {"id": "About", "label": "About Adobe CVG Viewer..."}
+ ]
+}}
diff --git a/support/cJSON-master/fuzzing/inputs/test6 b/support/cJSON-master/fuzzing/inputs/test6
new file mode 100644
index 0000000..af27975
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test6
@@ -0,0 +1,16 @@
+bf<!DOCTYPE html>
+ <html>
+ <head>
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <style type="text/css">
+ html, body, iframe { margin: 0; padding: 0; height: 100%; }
+ iframe { display: block; width: 100%; border: none; }
+ </style>
+ <title>Application Error</title>
+ </head>
+ <body>
+ <iframe src="//s3.amazonaws.com/heroku_pages/error.html">
+ <p>Application Error</p>
+ </iframe>
+ </body>
+ </html>
diff --git a/support/cJSON-master/fuzzing/inputs/test7 b/support/cJSON-master/fuzzing/inputs/test7
new file mode 100644
index 0000000..4a3c0b7
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test7
@@ -0,0 +1,22 @@
+bf[
+ {
+ "precision": "zip",
+ "Latitude": 37.7668,
+ "Longitude": -122.3959,
+ "Address": "",
+ "City": "SAN FRANCISCO",
+ "State": "CA",
+ "Zip": "94107",
+ "Country": "US"
+ },
+ {
+ "precision": "zip",
+ "Latitude": 37.371991,
+ "Longitude": -122.026020,
+ "Address": "",
+ "City": "SUNNYVALE",
+ "State": "CA",
+ "Zip": "94085",
+ "Country": "US"
+ }
+ ]
diff --git a/support/cJSON-master/fuzzing/inputs/test8 b/support/cJSON-master/fuzzing/inputs/test8
new file mode 100644
index 0000000..3ffe570
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test8
@@ -0,0 +1,13 @@
+bf{
+ "Image": {
+ "Width": 800,
+ "Height": 600,
+ "Title": "View from 15th Floor",
+ "Thumbnail": {
+ "Url": "http:/*www.example.com/image/481989943",
+ "Height": 125,
+ "Width": "100"
+ },
+ "IDs": [116, 943, 234, 38793]
+ }
+ }
diff --git a/support/cJSON-master/fuzzing/inputs/test9 b/support/cJSON-master/fuzzing/inputs/test9
new file mode 100644
index 0000000..28c9033
--- /dev/null
+++ b/support/cJSON-master/fuzzing/inputs/test9
@@ -0,0 +1,5 @@
+bf[
+ [0, -1, 0],
+ [1, 0, 0],
+ [0, 0, 1]
+ ]
diff --git a/support/cJSON-master/fuzzing/json.dict b/support/cJSON-master/fuzzing/json.dict
new file mode 100644
index 0000000..9bb03d7
--- /dev/null
+++ b/support/cJSON-master/fuzzing/json.dict
@@ -0,0 +1,47 @@
+#
+# AFL dictionary for JSON
+# -----------------------------
+#
+
+object_start="{"
+object_end="}"
+object_empty="{}"
+object_one_element="{\"one\":1}"
+object_two_elements="{\"1\":1,\"2\":2}"
+object_separator=":"
+
+array_start="["
+array_end="]"
+array_empty="[]"
+array_one_element="[1]"
+array_two_elements="[1,2]"
+
+separator=","
+
+escape_sequence_b="\\b"
+escape_sequence_f="\\f"
+escape_sequence_n="\\n"
+escape_sequence_r="\\r"
+escape_sequence_t="\\t"
+escape_sequence_quote="\\\""
+escape_sequence_backslash="\\\\"
+escape_sequence_slash="\\/"
+escape_sequence_utf16_base="\\u"
+escape_sequence_utf16="\\u12ab"
+
+number_integer="1"
+number_double="1.0"
+number_negative_integer="-1"
+number_negative_double="-1.0"
+number_engineering1="1e1"
+number_engineering2="1e-1"
+number_positive_integer="+1"
+number_positive_double="+1.0"
+number_e="e"
+number_plus="+"
+number_minus="-"
+number_separator="."
+
+null="null"
+true="true"
+false="false"