From e7ffaa67e0ae01b6b8e8714a63519da4df72c19c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20L=C3=B3pez?= Date: Mon, 26 Sep 2022 19:01:32 +0000 Subject: [PATCH 01/12] fuzz_{base64,altsvc}: fuzz base64 decoder/encoder and Alt-Svc parsing --- .gitignore | 4 +++ Makefile.am | 10 ++++++ fuzz_altsvc.cc | 83 ++++++++++++++++++++++++++++++++++++++++++ fuzz_base64.cc | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 195 insertions(+) create mode 100755 fuzz_altsvc.cc create mode 100755 fuzz_base64.cc diff --git a/.gitignore b/.gitignore index 269c2a40f..00dd91ecd 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,10 @@ m4/ Makefile Makefile.in missing +/curl_fuzzer_altsvc +/curl_fuzzer_altsvc_seed_corpus.zip +/curl_fuzzer_base64 +/curl_fuzzer_base64_seed_corpus.zip /curl_fuzzer_dict /curl_fuzzer_dict_seed_corpus.zip /curl_fuzzer_file diff --git a/Makefile.am b/Makefile.am index 12b29cbad..45790288a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -36,6 +36,8 @@ LIBS = -lpthread -lm LIB_FUZZING_ENGINE ?= libstandaloneengine.a FUZZPROGS = curl_fuzzer \ + curl_fuzzer_altsvc \ + curl_fuzzer_base64 \ curl_fuzzer_dict \ curl_fuzzer_file \ curl_fuzzer_ftp \ @@ -135,6 +137,14 @@ curl_fuzzer_fnmatch_SOURCES = fuzz_fnmatch.cc curl_fuzzer_fnmatch_CXXFLAGS = $(COMMON_FLAGS) curl_fuzzer_fnmatch_LDADD = $(COMMON_LDADD) +curl_fuzzer_altsvc_SOURCES = fuzz_altsvc.cc +curl_fuzzer_altsvc_CXXFLAGS = $(COMMON_FLAGS) +curl_fuzzer_altsvc_LDADD = $(COMMON_LDADD) + +curl_fuzzer_base64_SOURCES = fuzz_base64.cc +curl_fuzzer_base64_CXXFLAGS = $(COMMON_FLAGS) +curl_fuzzer_base64_LDADD = $(COMMON_LDADD) + # Create the seed corpora zip files. zip: BUILD_ROOT=$(PWD) scripts/create_zip.sh diff --git a/fuzz_altsvc.cc b/fuzz_altsvc.cc new file mode 100755 index 000000000..c5aa7027a --- /dev/null +++ b/fuzz_altsvc.cc @@ -0,0 +1,83 @@ +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 2017, Max Dymond, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +extern "C" +{ + #define HAVE_STRUCT_TIMEVAL // HACK to let it compile + #include + #include + #include + #include + #include + #include + #include + + enum alpnid { + ALPN_none = 0, + ALPN_h1 = CURLALTSVC_H1, + ALPN_h2 = CURLALTSVC_H2, + ALPN_h3 = CURLALTSVC_H3 + }; + + struct altsvcinfo *Curl_altsvc_init(void); + CURLcode Curl_altsvc_parse(struct Curl_easy *data, + struct altsvcinfo *altsvc, const char *value, + enum alpnid srcalpn, const char *srchost, + unsigned short srcport); + void Curl_altsvc_cleanup(struct altsvcinfo **altsvc); + +} + +#include + +/* #define DEBUG(STMT) STMT */ +#define DEBUG(STMT) + + +/** + * Fuzzing entry point. This function is passed a buffer containing a test + * case. This test case should drive the CURL fnmatch function. + */ +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) +{ + std::string s(reinterpret_cast(data), size); + + struct Curl_easy *curl; + CURLcode fnrc; + struct altsvcinfo *asi; + + asi = Curl_altsvc_init(); + curl_global_init(CURL_GLOBAL_ALL); + curl = (Curl_easy*)curl_easy_init(); + + fnrc = Curl_altsvc_parse(curl, asi, s.c_str(), ALPN_h1, "example.com", 1234); + (void)fnrc; + + DEBUG(printf("Curl_altsvc_parse returned %d with %s\n", fnrc, s.c_str())); + assert(fnrc == CURLE_OK); + + curl_easy_cleanup(curl); + Curl_altsvc_cleanup(&asi); + curl_global_cleanup(); + + return 0; +} diff --git a/fuzz_base64.cc b/fuzz_base64.cc new file mode 100755 index 000000000..6aabcb2ba --- /dev/null +++ b/fuzz_base64.cc @@ -0,0 +1,98 @@ +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 2017, Max Dymond, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +extern "C" +{ + #include + #include + #include + #include + #include + #include + #include "curl/lib/curl_base64.h" + #include "curl/lib/curl_printf.h" + #include "curl/lib/curl_memory.h" + #include "curl/lib/memdebug.h" + #include +} + +#include + +/* #define DEBUG(STMT) STMT */ +#define DEBUG(STMT) + + +void curl_dbg_free(void *ptr) +{ + if(ptr) { + void *mem = (void *)((char *)ptr - 8); + + /* free for real */ + (Curl_cfree)(mem); + } +} + + +/** + * Fuzzing entry point. This function is passed a buffer containing a test + * case. This test case should drive the CURL fnmatch function. + */ +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) +{ + std::string s(reinterpret_cast(data), size); + CURLcode fnrc; + unsigned char *outptr = NULL, *outptr2 = NULL; + char *recodeptr = NULL; + size_t inlen = strlen(s.c_str()), outlen, outlen2, recodelen; + + fnrc = Curl_base64_decode(s.c_str(), &outptr, &outlen); + + (void)fnrc; + DEBUG(printf("Curl_base64_decode returned %d with %s\n", fnrc, s.c_str())); + + if (fnrc != CURLE_OK) + goto EXIT_LABEL; + + fnrc = Curl_base64_encode((const char *)outptr, outlen, &recodeptr, &recodelen); + + if (fnrc != CURLE_OK) + goto EXIT_LABEL; + + (void)fnrc; + DEBUG(printf("Curl_base64_encode returned %d with %s\n", fnrc, s.c_str())); + + fnrc = Curl_base64_decode(recodeptr, &outptr2, &outlen2); + + DEBUG(printf("Sizes og:%lu decode:%lu recode:%lu decode2:%lu, Strings '%s' '%s'\n", inlen, outlen, recodelen, outlen2, s.c_str(), recodeptr)); + + assert(fnrc == CURLE_OK); + assert(outlen == outlen2); + assert(!memcmp(outptr, outptr2, outlen)); + +EXIT_LABEL: + + curl_dbg_free(outptr); + curl_dbg_free(outptr2); + curl_dbg_free(recodeptr); + + return 0; +} From ce8927de71f5fbe3ab67be1dc6ddca772a94fc27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20L=C3=B3pez?= Date: Wed, 28 Sep 2022 15:56:30 +0000 Subject: [PATCH 02/12] fuzz_doh: fuzz DNS-over-HTTPS response decoding --- Makefile.am | 5 ++ fuzz_doh.cc | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100755 fuzz_doh.cc diff --git a/Makefile.am b/Makefile.am index 45790288a..c4d1ea75e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -39,6 +39,7 @@ FUZZPROGS = curl_fuzzer \ curl_fuzzer_altsvc \ curl_fuzzer_base64 \ curl_fuzzer_dict \ + curl_fuzzer_doh \ curl_fuzzer_file \ curl_fuzzer_ftp \ curl_fuzzer_gopher \ @@ -145,6 +146,10 @@ curl_fuzzer_base64_SOURCES = fuzz_base64.cc curl_fuzzer_base64_CXXFLAGS = $(COMMON_FLAGS) curl_fuzzer_base64_LDADD = $(COMMON_LDADD) +curl_fuzzer_doh_SOURCES = fuzz_doh.cc +curl_fuzzer_doh_CXXFLAGS = $(COMMON_FLAGS) +curl_fuzzer_doh_LDADD = $(COMMON_LDADD) + # Create the seed corpora zip files. zip: BUILD_ROOT=$(PWD) scripts/create_zip.sh diff --git a/fuzz_doh.cc b/fuzz_doh.cc new file mode 100755 index 000000000..afbd2f752 --- /dev/null +++ b/fuzz_doh.cc @@ -0,0 +1,135 @@ +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 2017, Max Dymond, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +extern "C" +{ + #include + #include + #include + #include + #include + #include + #include + #define WARN_UNUSED_RESULT /* hack */ + #define DEBUGBUILD + #include "curl/lib/dynbuf.h" + + typedef enum { + DOH_OK, + DOH_DNS_BAD_LABEL, /* 1 */ + DOH_DNS_OUT_OF_RANGE, /* 2 */ + DOH_DNS_LABEL_LOOP, /* 3 */ + DOH_TOO_SMALL_BUFFER, /* 4 */ + DOH_OUT_OF_MEM, /* 5 */ + DOH_DNS_RDATA_LEN, /* 6 */ + DOH_DNS_MALFORMAT, /* 7 */ + DOH_DNS_BAD_RCODE, /* 8 - no such name */ + DOH_DNS_UNEXPECTED_TYPE, /* 9 */ + DOH_DNS_UNEXPECTED_CLASS, /* 10 */ + DOH_NO_CONTENT, /* 11 */ + DOH_DNS_BAD_ID, /* 12 */ + DOH_DNS_NAME_TOO_LONG /* 13 */ + } DOHcode; + + typedef enum { + DNS_TYPE_A = 1, + DNS_TYPE_NS = 2, + DNS_TYPE_CNAME = 5, + DNS_TYPE_AAAA = 28, + DNS_TYPE_DNAME = 39 /* RFC6672 */ + } DNStype; + + /* one of these for each DoH request */ + struct dnsprobe { + CURL *easy; + DNStype dnstype; + unsigned char dohbuffer[512]; + size_t dohlen; + struct dynbuf serverdoh; + }; + + #define DOH_MAX_ADDR 24 + #define DOH_MAX_CNAME 4 + + struct dohaddr { + int type; + union { + unsigned char v4[4]; /* network byte order */ + unsigned char v6[16]; + } ip; + }; + + struct dohentry { + struct dynbuf cname[DOH_MAX_CNAME]; + struct dohaddr addr[DOH_MAX_ADDR]; + int numaddr; + unsigned int ttl; + int numcname; + //char padding[1000]; + }; + + + DOHcode doh_encode(const char *host, + DNStype dnstype, + unsigned char *dnsp, /* buffer */ + size_t len, /* buffer size */ + size_t *olen); /* output length */ + DOHcode doh_decode(const unsigned char *doh, + size_t dohlen, + DNStype dnstype, + struct dohentry *d); + void de_init(struct dohentry *d); + void de_cleanup(struct dohentry *d); +} + +#include + +/* #define DEBUG(STMT) STMT */ +#define DEBUG(STMT) + + +/** + * Fuzzing entry point. This function is passed a buffer containing a test + * case. This test case should drive the CURL fnmatch function. + */ +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) +{ + struct dohentry d; + DOHcode fnrc; + + de_init(&d); + fnrc = doh_decode(data, size, DNS_TYPE_A, &d); + (void)fnrc; + DEBUG(printf("doh_decode returned %d for A\n", fnrc)); + + fnrc = doh_decode(data, size, DNS_TYPE_NS, &d); + (void)fnrc; + DEBUG(printf("doh_decode returned %d for NS\n", fnrc)); + + fnrc = doh_decode(data, size, DNS_TYPE_AAAA, &d); + (void)fnrc; + DEBUG(printf("doh_decode returned %d for AAAA\n", fnrc)); + + de_cleanup(&d); + + return 0; +} From 36dfe96b6b6bd7b048a071d239c591d9a61ef184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20L=C3=B3pez?= Date: Wed, 28 Sep 2022 16:13:17 +0000 Subject: [PATCH 03/12] corpora: add altsvc, base64, and doh input seeds --- corpora/curl_fuzzer_altsvc/test_clear | 1 + corpora/curl_fuzzer_altsvc/test_h2 | 1 + corpora/curl_fuzzer_altsvc/test_h2_h3 | 1 + corpora/curl_fuzzer_altsvc/test_h2_h3_ma_persist | 1 + corpora/curl_fuzzer_altsvc/test_h2_ma | 1 + corpora/curl_fuzzer_altsvc/test_h2_ma_2 | 1 + corpora/curl_fuzzer_altsvc/test_h3 | 1 + corpora/curl_fuzzer_altsvc/test_neg_port | 2 ++ corpora/curl_fuzzer_base64/test_1234 | 1 + corpora/curl_fuzzer_base64/test_abc | 1 + corpora/curl_fuzzer_base64/test_idempotent_1 | 1 + corpora/curl_fuzzer_base64/test_random_1 | 1 + corpora/curl_fuzzer_base64/test_random_2 | 1 + corpora/curl_fuzzer_base64/test_random_3 | 1 + corpora/curl_fuzzer_doh/test_aaaa_2020 | Bin 0 -> 62 bytes corpora/curl_fuzzer_doh/test_anywhere_really | Bin 0 -> 56 bytes corpora/curl_fuzzer_doh/test_bad_ip | Bin 0 -> 12 bytes corpora/curl_fuzzer_doh/test_bad_rcode | Bin 0 -> 12 bytes corpora/curl_fuzzer_doh/test_label_loop | Bin 0 -> 46 bytes corpora/curl_fuzzer_doh/test_out_of_range | Bin 0 -> 16 bytes corpora/curl_fuzzer_doh/test_out_of_range_2 | Bin 0 -> 17 bytes corpora/curl_fuzzer_doh/test_out_of_range_3 | Bin 0 -> 21 bytes corpora/curl_fuzzer_doh/test_out_of_range_4 | Bin 0 -> 22 bytes corpora/curl_fuzzer_doh/test_small | Bin 0 -> 2 bytes 24 files changed, 15 insertions(+) create mode 100644 corpora/curl_fuzzer_altsvc/test_clear create mode 100644 corpora/curl_fuzzer_altsvc/test_h2 create mode 100644 corpora/curl_fuzzer_altsvc/test_h2_h3 create mode 100644 corpora/curl_fuzzer_altsvc/test_h2_h3_ma_persist create mode 100644 corpora/curl_fuzzer_altsvc/test_h2_ma create mode 100644 corpora/curl_fuzzer_altsvc/test_h2_ma_2 create mode 100644 corpora/curl_fuzzer_altsvc/test_h3 create mode 100644 corpora/curl_fuzzer_altsvc/test_neg_port create mode 100644 corpora/curl_fuzzer_base64/test_1234 create mode 100644 corpora/curl_fuzzer_base64/test_abc create mode 100644 corpora/curl_fuzzer_base64/test_idempotent_1 create mode 100644 corpora/curl_fuzzer_base64/test_random_1 create mode 100644 corpora/curl_fuzzer_base64/test_random_2 create mode 100644 corpora/curl_fuzzer_base64/test_random_3 create mode 100644 corpora/curl_fuzzer_doh/test_aaaa_2020 create mode 100644 corpora/curl_fuzzer_doh/test_anywhere_really create mode 100644 corpora/curl_fuzzer_doh/test_bad_ip create mode 100644 corpora/curl_fuzzer_doh/test_bad_rcode create mode 100644 corpora/curl_fuzzer_doh/test_label_loop create mode 100644 corpora/curl_fuzzer_doh/test_out_of_range create mode 100644 corpora/curl_fuzzer_doh/test_out_of_range_2 create mode 100644 corpora/curl_fuzzer_doh/test_out_of_range_3 create mode 100644 corpora/curl_fuzzer_doh/test_out_of_range_4 create mode 100644 corpora/curl_fuzzer_doh/test_small diff --git a/corpora/curl_fuzzer_altsvc/test_clear b/corpora/curl_fuzzer_altsvc/test_clear new file mode 100644 index 000000000..11523ad48 --- /dev/null +++ b/corpora/curl_fuzzer_altsvc/test_clear @@ -0,0 +1 @@ +clear; diff --git a/corpora/curl_fuzzer_altsvc/test_h2 b/corpora/curl_fuzzer_altsvc/test_h2 new file mode 100644 index 000000000..87cb08afd --- /dev/null +++ b/corpora/curl_fuzzer_altsvc/test_h2 @@ -0,0 +1 @@ +h2="example.com:8080" diff --git a/corpora/curl_fuzzer_altsvc/test_h2_h3 b/corpora/curl_fuzzer_altsvc/test_h2_h3 new file mode 100644 index 000000000..d8ff86eb2 --- /dev/null +++ b/corpora/curl_fuzzer_altsvc/test_h2_h3 @@ -0,0 +1 @@ +h2="example.com:8080", h3="yesyes.com" diff --git a/corpora/curl_fuzzer_altsvc/test_h2_h3_ma_persist b/corpora/curl_fuzzer_altsvc/test_h2_h3_ma_persist new file mode 100644 index 000000000..a56be9bdb --- /dev/null +++ b/corpora/curl_fuzzer_altsvc/test_h2_h3_ma_persist @@ -0,0 +1 @@ +h2=":443", h3=":443"; ma = 120; persist = 1 diff --git a/corpora/curl_fuzzer_altsvc/test_h2_ma b/corpora/curl_fuzzer_altsvc/test_h2_ma new file mode 100644 index 000000000..6af905cad --- /dev/null +++ b/corpora/curl_fuzzer_altsvc/test_h2_ma @@ -0,0 +1 @@ +h2="example.com:443"; ma = 120; diff --git a/corpora/curl_fuzzer_altsvc/test_h2_ma_2 b/corpora/curl_fuzzer_altsvc/test_h2_ma_2 new file mode 100644 index 000000000..055aac756 --- /dev/null +++ b/corpora/curl_fuzzer_altsvc/test_h2_ma_2 @@ -0,0 +1 @@ +h2="example.net:443"; ma="180"; diff --git a/corpora/curl_fuzzer_altsvc/test_h3 b/corpora/curl_fuzzer_altsvc/test_h3 new file mode 100644 index 000000000..f9ed1e0ce --- /dev/null +++ b/corpora/curl_fuzzer_altsvc/test_h3 @@ -0,0 +1 @@ +h3=":8080" diff --git a/corpora/curl_fuzzer_altsvc/test_neg_port b/corpora/curl_fuzzer_altsvc/test_neg_port new file mode 100644 index 000000000..98be92bff --- /dev/null +++ b/corpora/curl_fuzzer_altsvc/test_neg_port @@ -0,0 +1,2 @@ +h3=":-43" + diff --git a/corpora/curl_fuzzer_base64/test_1234 b/corpora/curl_fuzzer_base64/test_1234 new file mode 100644 index 000000000..9c06465b0 --- /dev/null +++ b/corpora/curl_fuzzer_base64/test_1234 @@ -0,0 +1 @@ +MTIzNA== \ No newline at end of file diff --git a/corpora/curl_fuzzer_base64/test_abc b/corpora/curl_fuzzer_base64/test_abc new file mode 100644 index 000000000..83ee822d5 --- /dev/null +++ b/corpora/curl_fuzzer_base64/test_abc @@ -0,0 +1 @@ +YWJj \ No newline at end of file diff --git a/corpora/curl_fuzzer_base64/test_idempotent_1 b/corpora/curl_fuzzer_base64/test_idempotent_1 new file mode 100644 index 000000000..70153c0e6 --- /dev/null +++ b/corpora/curl_fuzzer_base64/test_idempotent_1 @@ -0,0 +1 @@ +NN== \ No newline at end of file diff --git a/corpora/curl_fuzzer_base64/test_random_1 b/corpora/curl_fuzzer_base64/test_random_1 new file mode 100644 index 000000000..29e25e3e1 --- /dev/null +++ b/corpora/curl_fuzzer_base64/test_random_1 @@ -0,0 +1 @@ +Tx16HpHlWdYqSAqlVYIOUpBf3t/1VMSMl8ZyCvXJwc3CX+mT/bRmuBgaSpQ65HQ67qxclI35nCleXt16ruCeMZoRKB3D73laaXyfyL5v27PZAyBs+JVIG121rL0vlAh+1XeEzlC8X+UX+4fqSkJLKUTD7nGGxioQdONGeyl9PAR4lDo4HNGit4pBkkvpwAfU2LS1y3+wx+f/WH05LpyXoj3Qj3yIs05vKnZ+gvzMLaJWNJ5d12N0mQWfe7cJv6WbHjShdDPy44vD8PLi7ZtGZicdKELDkami/N17UolDaR/5px6KGo7Kui87Z9mop97iIUaYEJdbbDq2DSIrhdHocx9S0bq0ei9caRTbyk3HjkqxEiIxtduNK9cwAI1RXp71ASPlpdLnBf35Fdn4wDtAZstx7M7ZcM8jRZnIvU1nuJ4DIICgEIXqP8ZUnxTPPC2e0wkWxfRSz6LQlPswjguh4EbNELyK7NBttp1KYcGnwn0MGJggdS4NV6ien6z/oxKuO/WOAVY5d5wg9CUyoWgcoIWAwPMn93KUYsQMXnwibsoQ0894HQ6s0ILUay2oG2jLwfKkWFYruUluDo5lkV/VYiPcu8BO/TSdu2i1KrcYU77XeVca8nooDw+oziYY9C854Kc1GSClxm2bL9HI4bpxlMTqpGRzhFnq7T6soj362Kg= \ No newline at end of file diff --git a/corpora/curl_fuzzer_base64/test_random_2 b/corpora/curl_fuzzer_base64/test_random_2 new file mode 100644 index 000000000..d512462db --- /dev/null +++ b/corpora/curl_fuzzer_base64/test_random_2 @@ -0,0 +1 @@ +gqs0oGe79YO+tkLbx9+vpShEhU7LypaOZzr3vQlJAC6R8kTT1QgK9XXFVSDJHo0OIQjdN0LKCEWuwGLV2fykqdd1Uz7DXxW8hY1G3WX2xYGAjbV0EP/pLPFX6sCHcWqSMfKuvvmrRrQeLC3ndAj0JJL38UeblE2qRavSreIgDbtL/8NeXoO5RZ9zqeMOK6eNPnMVC3QiTWM7obd3r99cIHLLTa4T17H9X3r3CsHoPSdIBPJRovL+xnnBeaX9kDZTGQBZkOphwI5NVwnPWfvV+wDTkiwfs/iWW0T1LMpOsMVm1djPlChnT4YeeIKvfHWQ+iYutDJ7dwKK2xYBOfNzDCeCE0gj9qrwkvU7TBnrEaPWfChqeuU4rub3lxu8TnADhpKxR/MPEYj8rl2ZUkxinUZIAeBtTz4t2dCUkRaqycfgXMlOu3PqjwqzE8fkQ/kTf3Y+KOU5zYGPzde/DE1KSpZAkvieejURyleIu3I2R0dS/y45W1QvaquLi7bTrsm4F1ZbJZ5+eGgnbreVTctmcUN+6Q6uD67kh2jAR9A0xc0UfPgBLiX8aQ9An1hUid8XBkH0ZymdQ4bqA2hCG49KsAY1iadMmB5MUFxF+AKo8Gud2N0BW7xxogf2rnyjGD1VJzUdU7F+2MiT2by+FsZI6J7vAy4tG9GFF7wRp+9YNjROBqKbKusfJ3JDC+l+wT6UpelmJI/7jQV0ODyLvXnYUlKvuQnS6JBjs5ojCJVDnO5gw5slRlobiG/XPBiPKQ7W8pUso9idY8OJJlb0yRw3RpTqdccObPSw3Vs0wugWC0hbvoky2LgwSh8ZjiCCCYLLNODQej8GL/NJ3Fenf0JrCF83mOxS/obvJEMSv5hDCDaLP+90cq0WhIFYfeeaN10+ziK3j9p6IM7GXa2PQv+30pKgGHOdplVDTb7lyW0piq9qAC6tkbR0GBCX0CQ8zmqcbR4HIXbfWxkywyzAkCck0jar0qL/s6/gsUZUe2wEEICbrsVnIvWtvUIETjIrq48n0oy6qvi8h1XfiHy4J/0HrC4Gv57y+ft0rejS6OTzn04n7Kbk8hdEP0XNdbuyBZ47IuXb0i9nJcfwzVss5l1hNsEMPfQliH9ZlyfVZitHI5yDS3NN4Tj3hZbDcgzx1tchGSrdn4/Cf5Dloxin8wEcaI31R2ygiyqL4kjiss1RwJF8Ndhj0enauQaeZ2lvvjaFYavIYsa7O0VVdmtjnGZG1HtE9LTHBidm2xMgkGZeNraqHJq3wmfRJ/G1G4Z/YFA7WaoUd5XWMMxsEOiqnBoGZBT8yVXAJPK0a16Eokj+MVxbSGVw0iM7kboNWKl7X34KqXayvyB1SavH0wEzHlHHiA== \ No newline at end of file diff --git a/corpora/curl_fuzzer_base64/test_random_3 b/corpora/curl_fuzzer_base64/test_random_3 new file mode 100644 index 000000000..217ecbd30 --- /dev/null +++ b/corpora/curl_fuzzer_base64/test_random_3 @@ -0,0 +1 @@ +bQd3jr/pnuM3Aip7sGgogXZM68WIvOSaVoQVuG75cT/vIM7QXfAAWGc8zp12oHvdhR1Ia8skTX8iqBjsJ+opKJ+r1IMYJoYcsmfa7H3oGfPK+jumJQ8FGWRN68W4zrAURS92HVLXKKyPQKgACY+A8kKbevgGVcyBlsNKM/Viu7PGJsO4CzbNS/1zUWug94qtAKw8ceYjeHuj9uQKiMbycKvrG4NtFzoxuSIN7QlqyAiQvS5Nbx5fjd91I/2I7H2RHNgvkPMTfHFWAlRnHAvKcdjLKG9Cm85m7AJhMC2b8AsTZZv0FBHrP30MLZA5l+/WnCyu7QW0j9jUMZAU6XhZZPu13X4MnYrfjEMcOiDl+KpuKIg9gxn9tQiNvepmajLEKDEmzumMJb/VzJgzkbR5VOvfG30YxoVcSbxNns0S9ulY7LHluDcR/9TjDCuU1h9xMYsCFp2Q83WQC2Guq9+/pYsnwznExAlbeRT/PWDC8LalQrzONhulpiC5iy+ZPcfXpgU9oKsKSsE6jSKTDKOcGNynn1X59nVkik8A2ay8jEW9QZDaVql2aM8Aj4QSXdBJHs8b/ltgtoSypSO7EiZU+JeTX2WMSVtyeJhB/rMpYaXOiuTyO76CVhkYP66qdITS5VqIK2GU5NP8ppg4eM4FlgdZw/VqxZFjL0shKKuQ32+CnQqfOqshObQYl2BnAA5Nb/7y+JxqT3el9QrGD3NQtd8uwS7I5C8YSoqMii7rUWPqg0HFgT7Ah7i3vA4NYDl/dQwRzQCjliEUF/DKu9gRGibGSJKMzI6gsSUvTe9qvAvLLp2A+R3711nUsmxI5X6b4Kea/nsgAYXayMs7I8OtVgHA6VbF7KCQCXvGNESL6jFNyxvwsCm5W4QJ63Szb08jmxZRR9NRM2DbCT6jK/dH4EBNj55yhaBJWfgwB92N30OMP+FKFZgJAVq37NKdAPIS1KFbZ+FvfieIhLazSL0c4X1iOsrW4CxifyNtn5WOhGF9avMFI94iHFocL6z2dwod/hOK57/ZTvY6PDf9JJt7X0XvI+MGJi6Hjc7esQmz4SBZe/uRgNu77h27pH34r9NKBpMjmrjo+By+c43sgSvvr9VAwMbB+cXiPyZjdir+QE1ClABDEWvA8+kYAWlJm59S/XVbThCRWOFU+O1sEG42qR5Jk+x+eilFDuTAmKx3sVcy4mkGDCe7sFaiEhF3gkYRJUYL0X2vWHG7f07mZwDEREn1v+xG1DoxBLX/YVb7OCU4SWITdrx9fIP6XZitcR0nUIUx1dTk1B4hzeVEJlo8ptEnbeEDAtkcTrZ4IkjdLCh/lSdZddi7lv7CwHokozbVW4et8c2XZVLvY9QXPhYHTzmIFknP9wrsunk8bmTn++MFV5H8xz/vF0aDzRxK2eJGjUoiYkSwkLTVNn/phaaNbPXlYgSmdhGjxoHI7TlSYT1ng2nx4jC8w3rMPIXm5jQAfgByqdqb2szQTKc6q3f5DokzEnndb+KrDynKzFr8w+wN2+8mfz2X+UOETtEr0IunGYRXUAB0I5cP7DQhj9z//ngenSmSpaq3R3A+GbU55ctB9LXfIfQqeA/oA4MwDwYm9EXu5njgQCSpPgF8Y9jCoASp+wzaT4JLVuQnnLG5BJ2frWJxI1z1ZVApwTD//GejBiV0jDGRZ/XXwu+JbxjawrvDwsDKcUiaQ3EwVMbUNqTvGIDj0a5oqsWF3eFbA8yokNe9eHbqDkLjHcYiPrOb083O/yDiMy6kcjG/eMQlsXvuL/XcFq0UmGWMbh2gtnKt1FTsoD1+npPzLpaN5hxoCU5KdwM0Q+WDiG08TvJn6UQoiDv5nB8LZvpyTSPSWM3YuKYynrxb34aElQ5+ky9eEsVL7u1euj5PJQgyEAJ/LXISpjxRClZQ+LxU07WGwPy0kvt8NlQXsn+KBMWG/YZum3TFFdqYUlL+C6kSg8H0jACB6P1sAD9evfDuAC125AUs+3XKYLYSIua+koVSqGjpvPqqIWk64ciktPEnkHyyKRQ3ounAf7GO3n4vXZpy2UKn \ No newline at end of file diff --git a/corpora/curl_fuzzer_doh/test_aaaa_2020 b/corpora/curl_fuzzer_doh/test_aaaa_2020 new file mode 100644 index 0000000000000000000000000000000000000000..2ca7ec29d45c0bd288a06f4e8356251fecb5c8a2 GIT binary patch literal 62 zcmZQzU}OLyAi==Ek_ZIssTGO21v#nA$@#eq3^ELi2Y5gvP}-b9KmiCqDj`5Y0RR{- B2hIQh literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_doh/test_anywhere_really b/corpora/curl_fuzzer_doh/test_anywhere_really new file mode 100644 index 0000000000000000000000000000000000000000..ca74815663999222ff7de5e059ba440d1fec7c3f GIT binary patch literal 56 zcmZQzU}OLyAi==El3ZGp111<4SQ!`(@PJ65xH*F$M`B)Oc}8kcDqB%%Vopva0|48? B3X%W- literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_doh/test_bad_ip b/corpora/curl_fuzzer_doh/test_bad_ip new file mode 100644 index 0000000000000000000000000000000000000000..2101ea0a984822fa37cd288eddd003ad9c28b9f3 GIT binary patch literal 12 LcmZQzWPn2e05AXt literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_doh/test_bad_rcode b/corpora/curl_fuzzer_doh/test_bad_rcode new file mode 100644 index 0000000000000000000000000000000000000000..a1dc6206ec512d5f972ce1e5003f878a557d12b9 GIT binary patch literal 12 McmZQzU|@tn001Qb1^@s6 literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_doh/test_label_loop b/corpora/curl_fuzzer_doh/test_label_loop new file mode 100644 index 0000000000000000000000000000000000000000..e120af9ec81ffd803d000a0dfe944aa199c4f1d8 GIT binary patch literal 46 rcmZQzU}OLyAi==El3ZGp111<4SQ!`(@PJ65xH$tmb7EfQ0d)odfD;D5 literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_doh/test_out_of_range b/corpora/curl_fuzzer_doh/test_out_of_range new file mode 100644 index 0000000000000000000000000000000000000000..1953b5310a61c3c2e86f48dc74e970bd0e89f57a GIT binary patch literal 16 UcmZQzU}OLyAi==EoR*&t00O-MO8@`> literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_doh/test_out_of_range_2 b/corpora/curl_fuzzer_doh/test_out_of_range_2 new file mode 100644 index 0000000000000000000000000000000000000000..e8d5949b4fc67ab97f3fae7e1dbd076004310f81 GIT binary patch literal 17 VcmZQzU}OLyAi==EoR*)@000CC0ZRY? literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_doh/test_out_of_range_3 b/corpora/curl_fuzzer_doh/test_out_of_range_3 new file mode 100644 index 0000000000000000000000000000000000000000..309aa24dcedd58649d78b0ebcf1af2ca8373b145 GIT binary patch literal 21 WcmZQzU}OLyAi==EoR*&t<^TW*H~~!n literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_doh/test_out_of_range_4 b/corpora/curl_fuzzer_doh/test_out_of_range_4 new file mode 100644 index 0000000000000000000000000000000000000000..3a9bb5c7fd55e8a56606d8137226dd55627f8122 GIT binary patch literal 22 XcmZQzU}OLyAi==EoR*&t=CA+&3W)(x literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_doh/test_small b/corpora/curl_fuzzer_doh/test_small new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 From 617266b65ad423898d3708a1b443dbd85cefd610 Mon Sep 17 00:00:00 2001 From: Advenam Tacet Date: Wed, 28 Sep 2022 20:25:11 +0200 Subject: [PATCH 04/12] fuzz_targets: update list of fuzzers That list is used by oss-fuzz, and probably somewhere else. Add the new altsvc, base64 and doh fuzzers to it. --- scripts/fuzz_targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/fuzz_targets b/scripts/fuzz_targets index 907a163a8..228c60dc5 100644 --- a/scripts/fuzz_targets +++ b/scripts/fuzz_targets @@ -1,3 +1,3 @@ #!/bin/bash -export FUZZ_TARGETS="curl_fuzzer_dict curl_fuzzer_file curl_fuzzer_ftp curl_fuzzer_gopher curl_fuzzer_http curl_fuzzer_https curl_fuzzer_imap curl_fuzzer_ldap curl_fuzzer_mqtt curl_fuzzer_pop3 curl_fuzzer_rtmp curl_fuzzer_rtsp curl_fuzzer_scp curl_fuzzer_sftp curl_fuzzer_smb curl_fuzzer_smtp curl_fuzzer_tftp curl_fuzzer_ws curl_fuzzer fuzz_url" +export FUZZ_TARGETS="curl_fuzzer_dict curl_fuzzer_file curl_fuzzer_ftp curl_fuzzer_gopher curl_fuzzer_http curl_fuzzer_https curl_fuzzer_imap curl_fuzzer_ldap curl_fuzzer_mqtt curl_fuzzer_pop3 curl_fuzzer_rtmp curl_fuzzer_rtsp curl_fuzzer_scp curl_fuzzer_sftp curl_fuzzer_smb curl_fuzzer_smtp curl_fuzzer_tftp curl_fuzzer_ws curl_fuzzer fuzz_url curl_fuzzer_altsvc curl_fuzzer_base64 curl_fuzzer_doh" From dbeae552622244e0d25150b674f039719610ad82 Mon Sep 17 00:00:00 2001 From: Advenam Tacet Date: Sat, 1 Oct 2022 02:40:30 +0200 Subject: [PATCH 05/12] fuzz_{base64,doh}: curl lib includes for standalone harnesses This patch adds `-I` flag to compilation flags for standalone harnesses in Makefile.am. Variable CURLDIR is used to determine include path. This patch sets CURLDIR envvar in ossfuzz.sh, but name is taken from mainline.sh. That makes dependencies work with oss-fuzz. It should also make it work with mainline.sh --- Makefile.am | 6 +++--- fuzz_base64.cc | 8 ++++---- fuzz_doh.cc | 2 +- mainline.sh | 2 +- ossfuzz.sh | 3 ++- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Makefile.am b/Makefile.am index c4d1ea75e..c2f924c3a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -139,15 +139,15 @@ curl_fuzzer_fnmatch_CXXFLAGS = $(COMMON_FLAGS) curl_fuzzer_fnmatch_LDADD = $(COMMON_LDADD) curl_fuzzer_altsvc_SOURCES = fuzz_altsvc.cc -curl_fuzzer_altsvc_CXXFLAGS = $(COMMON_FLAGS) +curl_fuzzer_altsvc_CXXFLAGS = $(COMMON_FLAGS) -I$(CURLDIR) curl_fuzzer_altsvc_LDADD = $(COMMON_LDADD) curl_fuzzer_base64_SOURCES = fuzz_base64.cc -curl_fuzzer_base64_CXXFLAGS = $(COMMON_FLAGS) +curl_fuzzer_base64_CXXFLAGS = $(COMMON_FLAGS) -I$(CURLDIR) curl_fuzzer_base64_LDADD = $(COMMON_LDADD) curl_fuzzer_doh_SOURCES = fuzz_doh.cc -curl_fuzzer_doh_CXXFLAGS = $(COMMON_FLAGS) +curl_fuzzer_doh_CXXFLAGS = $(COMMON_FLAGS) -I$(CURLDIR) curl_fuzzer_doh_LDADD = $(COMMON_LDADD) # Create the seed corpora zip files. diff --git a/fuzz_base64.cc b/fuzz_base64.cc index 6aabcb2ba..f55b4d525 100755 --- a/fuzz_base64.cc +++ b/fuzz_base64.cc @@ -28,10 +28,10 @@ extern "C" #include #include #include - #include "curl/lib/curl_base64.h" - #include "curl/lib/curl_printf.h" - #include "curl/lib/curl_memory.h" - #include "curl/lib/memdebug.h" + #include + #include + #include + #include #include } diff --git a/fuzz_doh.cc b/fuzz_doh.cc index afbd2f752..a7475aec2 100755 --- a/fuzz_doh.cc +++ b/fuzz_doh.cc @@ -31,7 +31,7 @@ extern "C" #include #define WARN_UNUSED_RESULT /* hack */ #define DEBUGBUILD - #include "curl/lib/dynbuf.h" + #include typedef enum { DOH_OK, diff --git a/mainline.sh b/mainline.sh index c0991a5fd..a56c49713 100755 --- a/mainline.sh +++ b/mainline.sh @@ -6,7 +6,7 @@ set -ex export BUILD_ROOT=$PWD SCRIPTDIR=${BUILD_ROOT}/scripts -CURLDIR=/tmp/curl +export CURLDIR=/tmp/curl OPENSSLDIR=/tmp/openssl NGHTTPDIR=/tmp/nghttp2 INSTALLDIR=/tmp/curl_install diff --git a/ossfuzz.sh b/ossfuzz.sh index d3b367280..bd3decb5a 100755 --- a/ossfuzz.sh +++ b/ossfuzz.sh @@ -23,6 +23,7 @@ # Save off the current folder as the build root. export BUILD_ROOT=$PWD +export CURLDIR=/src/curl SCRIPTDIR=${BUILD_ROOT}/scripts . ${SCRIPTDIR}/fuzz_targets @@ -60,7 +61,7 @@ fi ${SCRIPTDIR}/handle_x.sh nghttp2 ${NGHTTPDIR} ${INSTALLDIR} || exit 1 # Compile curl -${SCRIPTDIR}/install_curl.sh /src/curl ${INSTALLDIR} +${SCRIPTDIR}/install_curl.sh $CURLDIR ${INSTALLDIR} # Build the fuzzers. ${SCRIPTDIR}/compile_fuzzer.sh ${INSTALLDIR} From 623a6a96872a2dfd9d9db557da44e843d788ef78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20L=C3=B3pez?= Date: Tue, 4 Oct 2022 15:02:26 +0000 Subject: [PATCH 06/12] codecoverage: also export CURLDIR during code coverage collection This fixes coverage collection for standalone harnesses. --- codecoverage.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/codecoverage.sh b/codecoverage.sh index ccb352d3b..06f243499 100755 --- a/codecoverage.sh +++ b/codecoverage.sh @@ -36,14 +36,15 @@ ${SCRIPTDIR}/handle_x.sh nghttp2 ${NGHTTPDIR} ${INSTALLDIR} || exit 1 ${SCRIPTDIR}/download_curl.sh /tmp/curlcov # Move cURL to a subfolder of this folder to get the paths right. -if [[ -d ${BUILD_ROOT}/curl ]] +export CURLDIR=${BUILD_ROOT}/curl +if [[ -d ${CURLDIR} ]] then - rm -rf ${BUILD_ROOT}/curl + rm -rf ${CURLDIR} fi -mv /tmp/curlcov ${BUILD_ROOT}/curl +mv /tmp/curlcov ${CURLDIR} # Compile and install cURL to a second folder with code coverage. -${SCRIPTDIR}/install_curl.sh -c ${BUILD_ROOT}/curl ${INSTALLDIR} +${SCRIPTDIR}/install_curl.sh -c ${CURLDIR} ${INSTALLDIR} # Compile and test the fuzzer with code coverage ${SCRIPTDIR}/compile_fuzzer.sh -c ${INSTALLDIR} From 2ccbc11851066f4e16dd04c1e1da6e49ebf58a56 Mon Sep 17 00:00:00 2001 From: Advenam Tacet Date: Thu, 6 Oct 2022 04:10:07 +0200 Subject: [PATCH 07/12] fuzz_parsedate: fuzz date parsing with Curl_getdate_capped Real target is function parsedate from parsedate.c The harness was written by Peter Goodman. --- Makefile.am | 5 +++++ corpora/curl_fuzzer_parsedate/simple | 1 + fuzz_parsedate.cc | 18 ++++++++++++++++++ scripts/fuzz_targets | 2 +- 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 corpora/curl_fuzzer_parsedate/simple create mode 100644 fuzz_parsedate.cc diff --git a/Makefile.am b/Makefile.am index c2f924c3a..a3110e544 100644 --- a/Makefile.am +++ b/Makefile.am @@ -48,6 +48,7 @@ FUZZPROGS = curl_fuzzer \ curl_fuzzer_imap \ curl_fuzzer_ldap \ curl_fuzzer_mqtt \ + curl_fuzzer_parsedate \ curl_fuzzer_pop3 \ curl_fuzzer_rtmp \ curl_fuzzer_rtsp \ @@ -150,6 +151,10 @@ curl_fuzzer_doh_SOURCES = fuzz_doh.cc curl_fuzzer_doh_CXXFLAGS = $(COMMON_FLAGS) -I$(CURLDIR) curl_fuzzer_doh_LDADD = $(COMMON_LDADD) +curl_fuzzer_parsedate_SOURCES = fuzz_parsedate.cc +curl_fuzzer_parsedate_CXXFLAGS = $(COMMON_FLAGS) -I$(CURLDIR) +curl_fuzzer_parsedate_LDADD = $(COMMON_LDADD) + # Create the seed corpora zip files. zip: BUILD_ROOT=$(PWD) scripts/create_zip.sh diff --git a/corpora/curl_fuzzer_parsedate/simple b/corpora/curl_fuzzer_parsedate/simple new file mode 100644 index 000000000..28d14454c --- /dev/null +++ b/corpora/curl_fuzzer_parsedate/simple @@ -0,0 +1 @@ +123456789 diff --git a/fuzz_parsedate.cc b/fuzz_parsedate.cc new file mode 100644 index 000000000..c585a7093 --- /dev/null +++ b/fuzz_parsedate.cc @@ -0,0 +1,18 @@ +extern "C" +{ + #include + #include + #include +} + +// fuzz_target.cc + +extern "C" int LLVMFuzzerTestOneInput(char *data, size_t size) { + time_t output = 0; + char date[100]; + size_t len = size >= 100 ? 99 : size; + memcpy(date, data, len); + date[len] = 0; + Curl_getdate_capped(date); + return 0; // Values other than 0 and -1 are reserved for future use. +} diff --git a/scripts/fuzz_targets b/scripts/fuzz_targets index 228c60dc5..e89d28830 100644 --- a/scripts/fuzz_targets +++ b/scripts/fuzz_targets @@ -1,3 +1,3 @@ #!/bin/bash -export FUZZ_TARGETS="curl_fuzzer_dict curl_fuzzer_file curl_fuzzer_ftp curl_fuzzer_gopher curl_fuzzer_http curl_fuzzer_https curl_fuzzer_imap curl_fuzzer_ldap curl_fuzzer_mqtt curl_fuzzer_pop3 curl_fuzzer_rtmp curl_fuzzer_rtsp curl_fuzzer_scp curl_fuzzer_sftp curl_fuzzer_smb curl_fuzzer_smtp curl_fuzzer_tftp curl_fuzzer_ws curl_fuzzer fuzz_url curl_fuzzer_altsvc curl_fuzzer_base64 curl_fuzzer_doh" +export FUZZ_TARGETS="curl_fuzzer_dict curl_fuzzer_file curl_fuzzer_ftp curl_fuzzer_gopher curl_fuzzer_http curl_fuzzer_https curl_fuzzer_imap curl_fuzzer_ldap curl_fuzzer_mqtt curl_fuzzer_pop3 curl_fuzzer_rtmp curl_fuzzer_rtsp curl_fuzzer_scp curl_fuzzer_sftp curl_fuzzer_smb curl_fuzzer_smtp curl_fuzzer_tftp curl_fuzzer_ws curl_fuzzer fuzz_url curl_fuzzer_altsvc curl_fuzzer_base64 curl_fuzzer_doh curl_fuzzer_parsedate" From 92ea8c7d2d5e28560beb8c014e0efed924f312f5 Mon Sep 17 00:00:00 2001 From: Advenam Tacet Date: Tue, 11 Oct 2022 06:50:26 +0200 Subject: [PATCH 08/12] fuzz_parsedate: add initial inputs Basic test inputs for parse-date. --- corpora/curl_fuzzer_parsedate/all_10 | 1 + corpora/curl_fuzzer_parsedate/all_20 | Bin 0 -> 304 bytes corpora/curl_fuzzer_parsedate/all_30 | Bin 0 -> 451 bytes corpora/curl_fuzzer_parsedate/all_40 | Bin 0 -> 593 bytes corpora/curl_fuzzer_parsedate/all_50 | Bin 0 -> 759 bytes corpora/curl_fuzzer_parsedate/all_60 | Bin 0 -> 921 bytes corpora/curl_fuzzer_parsedate/all_70 | Bin 0 -> 1053 bytes corpora/curl_fuzzer_parsedate/all_80 | Bin 0 -> 1200 bytes corpora/curl_fuzzer_parsedate/all_90 | Bin 0 -> 1364 bytes corpora/curl_fuzzer_parsedate/big_0 | 1 + corpora/curl_fuzzer_parsedate/date_10 | 1 + corpora/curl_fuzzer_parsedate/date_100 | 1 + corpora/curl_fuzzer_parsedate/date_110 | 1 + corpora/curl_fuzzer_parsedate/date_120 | 1 + corpora/curl_fuzzer_parsedate/date_130 | 1 + corpora/curl_fuzzer_parsedate/date_140 | 1 + corpora/curl_fuzzer_parsedate/date_150 | 1 + corpora/curl_fuzzer_parsedate/date_160 | 1 + corpora/curl_fuzzer_parsedate/date_170 | 1 + corpora/curl_fuzzer_parsedate/date_180 | 1 + corpora/curl_fuzzer_parsedate/date_190 | 1 + corpora/curl_fuzzer_parsedate/date_20 | 1 + corpora/curl_fuzzer_parsedate/date_200 | 1 + corpora/curl_fuzzer_parsedate/date_210 | 1 + corpora/curl_fuzzer_parsedate/date_220 | 1 + corpora/curl_fuzzer_parsedate/date_230 | 1 + corpora/curl_fuzzer_parsedate/date_240 | 1 + corpora/curl_fuzzer_parsedate/date_250 | 1 + corpora/curl_fuzzer_parsedate/date_260 | 1 + corpora/curl_fuzzer_parsedate/date_270 | 1 + corpora/curl_fuzzer_parsedate/date_280 | 1 + corpora/curl_fuzzer_parsedate/date_290 | 1 + corpora/curl_fuzzer_parsedate/date_30 | 1 + corpora/curl_fuzzer_parsedate/date_300 | 1 + corpora/curl_fuzzer_parsedate/date_310 | 1 + corpora/curl_fuzzer_parsedate/date_320 | 1 + corpora/curl_fuzzer_parsedate/date_330 | 1 + corpora/curl_fuzzer_parsedate/date_340 | 1 + corpora/curl_fuzzer_parsedate/date_350 | 1 + corpora/curl_fuzzer_parsedate/date_360 | 1 + corpora/curl_fuzzer_parsedate/date_370 | 1 + corpora/curl_fuzzer_parsedate/date_380 | 1 + corpora/curl_fuzzer_parsedate/date_390 | 1 + corpora/curl_fuzzer_parsedate/date_40 | 1 + corpora/curl_fuzzer_parsedate/date_400 | 1 + corpora/curl_fuzzer_parsedate/date_410 | 1 + corpora/curl_fuzzer_parsedate/date_420 | 1 + corpora/curl_fuzzer_parsedate/date_430 | 1 + corpora/curl_fuzzer_parsedate/date_440 | 1 + corpora/curl_fuzzer_parsedate/date_450 | 1 + corpora/curl_fuzzer_parsedate/date_460 | 1 + corpora/curl_fuzzer_parsedate/date_470 | 1 + corpora/curl_fuzzer_parsedate/date_480 | 1 + corpora/curl_fuzzer_parsedate/date_490 | 1 + corpora/curl_fuzzer_parsedate/date_50 | 1 + corpora/curl_fuzzer_parsedate/date_500 | 1 + corpora/curl_fuzzer_parsedate/date_510 | 1 + corpora/curl_fuzzer_parsedate/date_520 | 1 + corpora/curl_fuzzer_parsedate/date_530 | 1 + corpora/curl_fuzzer_parsedate/date_540 | 1 + corpora/curl_fuzzer_parsedate/date_550 | 1 + corpora/curl_fuzzer_parsedate/date_560 | 1 + corpora/curl_fuzzer_parsedate/date_570 | 1 + corpora/curl_fuzzer_parsedate/date_580 | 1 + corpora/curl_fuzzer_parsedate/date_590 | 1 + corpora/curl_fuzzer_parsedate/date_60 | 1 + corpora/curl_fuzzer_parsedate/date_600 | 1 + corpora/curl_fuzzer_parsedate/date_610 | 1 + corpora/curl_fuzzer_parsedate/date_620 | 1 + corpora/curl_fuzzer_parsedate/date_630 | 1 + corpora/curl_fuzzer_parsedate/date_640 | 1 + corpora/curl_fuzzer_parsedate/date_650 | 1 + corpora/curl_fuzzer_parsedate/date_660 | 1 + corpora/curl_fuzzer_parsedate/date_670 | 1 + corpora/curl_fuzzer_parsedate/date_680 | 1 + corpora/curl_fuzzer_parsedate/date_690 | 1 + corpora/curl_fuzzer_parsedate/date_70 | 1 + corpora/curl_fuzzer_parsedate/date_700 | 1 + corpora/curl_fuzzer_parsedate/date_710 | 1 + corpora/curl_fuzzer_parsedate/date_720 | 1 + corpora/curl_fuzzer_parsedate/date_730 | 1 + corpora/curl_fuzzer_parsedate/date_740 | 1 + corpora/curl_fuzzer_parsedate/date_750 | 1 + corpora/curl_fuzzer_parsedate/date_760 | 1 + corpora/curl_fuzzer_parsedate/date_770 | 1 + corpora/curl_fuzzer_parsedate/date_780 | 1 + corpora/curl_fuzzer_parsedate/date_790 | 1 + corpora/curl_fuzzer_parsedate/date_80 | 1 + corpora/curl_fuzzer_parsedate/date_90 | 1 + corpora/curl_fuzzer_parsedate/minus_0 | 1 + corpora/curl_fuzzer_parsedate/minus_10 | 1 + corpora/curl_fuzzer_parsedate/minus_20 | 1 + corpora/curl_fuzzer_parsedate/minus_30 | 1 + corpora/curl_fuzzer_parsedate/minus_40 | 1 + corpora/curl_fuzzer_parsedate/minus_50 | 1 + corpora/curl_fuzzer_parsedate/minus_60 | 1 + corpora/curl_fuzzer_parsedate/minus_70 | 1 + corpora/curl_fuzzer_parsedate/minus_80 | 1 + corpora/curl_fuzzer_parsedate/minus_90 | 1 + corpora/curl_fuzzer_parsedate/numeric_0 | 1 + corpora/curl_fuzzer_parsedate/numeric_10 | 1 + corpora/curl_fuzzer_parsedate/numeric_20 | 1 + corpora/curl_fuzzer_parsedate/numeric_30 | 1 + corpora/curl_fuzzer_parsedate/numeric_40 | 1 + corpora/curl_fuzzer_parsedate/numeric_50 | 1 + corpora/curl_fuzzer_parsedate/numeric_60 | 1 + corpora/curl_fuzzer_parsedate/numeric_70 | 1 + corpora/curl_fuzzer_parsedate/numeric_80 | 1 + corpora/curl_fuzzer_parsedate/numeric_90 | 1 + corpora/curl_fuzzer_parsedate/printable_10 | 2 ++ corpora/curl_fuzzer_parsedate/printable_20 | 1 + corpora/curl_fuzzer_parsedate/printable_30 | 2 ++ corpora/curl_fuzzer_parsedate/printable_40 | 3 +++ corpora/curl_fuzzer_parsedate/printable_50 | 6 ++++++ corpora/curl_fuzzer_parsedate/printable_60 | 8 ++++++++ corpora/curl_fuzzer_parsedate/printable_70 | 7 +++++++ corpora/curl_fuzzer_parsedate/printable_80 | 5 +++++ corpora/curl_fuzzer_parsedate/printable_90 | 10 ++++++++++ corpora/curl_fuzzer_parsedate/zero_10 | 1 + corpora/curl_fuzzer_parsedate/zero_20 | 1 + corpora/curl_fuzzer_parsedate/zero_30 | 1 + corpora/curl_fuzzer_parsedate/zero_40 | 1 + corpora/curl_fuzzer_parsedate/zero_50 | 1 + corpora/curl_fuzzer_parsedate/zero_60 | 1 + corpora/curl_fuzzer_parsedate/zero_70 | 1 + corpora/curl_fuzzer_parsedate/zero_80 | 1 + corpora/curl_fuzzer_parsedate/zero_90 | 1 + 127 files changed, 154 insertions(+) create mode 100644 corpora/curl_fuzzer_parsedate/all_10 create mode 100644 corpora/curl_fuzzer_parsedate/all_20 create mode 100644 corpora/curl_fuzzer_parsedate/all_30 create mode 100644 corpora/curl_fuzzer_parsedate/all_40 create mode 100644 corpora/curl_fuzzer_parsedate/all_50 create mode 100644 corpora/curl_fuzzer_parsedate/all_60 create mode 100644 corpora/curl_fuzzer_parsedate/all_70 create mode 100644 corpora/curl_fuzzer_parsedate/all_80 create mode 100644 corpora/curl_fuzzer_parsedate/all_90 create mode 100644 corpora/curl_fuzzer_parsedate/big_0 create mode 100644 corpora/curl_fuzzer_parsedate/date_10 create mode 100644 corpora/curl_fuzzer_parsedate/date_100 create mode 100644 corpora/curl_fuzzer_parsedate/date_110 create mode 100644 corpora/curl_fuzzer_parsedate/date_120 create mode 100644 corpora/curl_fuzzer_parsedate/date_130 create mode 100644 corpora/curl_fuzzer_parsedate/date_140 create mode 100644 corpora/curl_fuzzer_parsedate/date_150 create mode 100644 corpora/curl_fuzzer_parsedate/date_160 create mode 100644 corpora/curl_fuzzer_parsedate/date_170 create mode 100644 corpora/curl_fuzzer_parsedate/date_180 create mode 100644 corpora/curl_fuzzer_parsedate/date_190 create mode 100644 corpora/curl_fuzzer_parsedate/date_20 create mode 100644 corpora/curl_fuzzer_parsedate/date_200 create mode 100644 corpora/curl_fuzzer_parsedate/date_210 create mode 100644 corpora/curl_fuzzer_parsedate/date_220 create mode 100644 corpora/curl_fuzzer_parsedate/date_230 create mode 100644 corpora/curl_fuzzer_parsedate/date_240 create mode 100644 corpora/curl_fuzzer_parsedate/date_250 create mode 100644 corpora/curl_fuzzer_parsedate/date_260 create mode 100644 corpora/curl_fuzzer_parsedate/date_270 create mode 100644 corpora/curl_fuzzer_parsedate/date_280 create mode 100644 corpora/curl_fuzzer_parsedate/date_290 create mode 100644 corpora/curl_fuzzer_parsedate/date_30 create mode 100644 corpora/curl_fuzzer_parsedate/date_300 create mode 100644 corpora/curl_fuzzer_parsedate/date_310 create mode 100644 corpora/curl_fuzzer_parsedate/date_320 create mode 100644 corpora/curl_fuzzer_parsedate/date_330 create mode 100644 corpora/curl_fuzzer_parsedate/date_340 create mode 100644 corpora/curl_fuzzer_parsedate/date_350 create mode 100644 corpora/curl_fuzzer_parsedate/date_360 create mode 100644 corpora/curl_fuzzer_parsedate/date_370 create mode 100644 corpora/curl_fuzzer_parsedate/date_380 create mode 100644 corpora/curl_fuzzer_parsedate/date_390 create mode 100644 corpora/curl_fuzzer_parsedate/date_40 create mode 100644 corpora/curl_fuzzer_parsedate/date_400 create mode 100644 corpora/curl_fuzzer_parsedate/date_410 create mode 100644 corpora/curl_fuzzer_parsedate/date_420 create mode 100644 corpora/curl_fuzzer_parsedate/date_430 create mode 100644 corpora/curl_fuzzer_parsedate/date_440 create mode 100644 corpora/curl_fuzzer_parsedate/date_450 create mode 100644 corpora/curl_fuzzer_parsedate/date_460 create mode 100644 corpora/curl_fuzzer_parsedate/date_470 create mode 100644 corpora/curl_fuzzer_parsedate/date_480 create mode 100644 corpora/curl_fuzzer_parsedate/date_490 create mode 100644 corpora/curl_fuzzer_parsedate/date_50 create mode 100644 corpora/curl_fuzzer_parsedate/date_500 create mode 100644 corpora/curl_fuzzer_parsedate/date_510 create mode 100644 corpora/curl_fuzzer_parsedate/date_520 create mode 100644 corpora/curl_fuzzer_parsedate/date_530 create mode 100644 corpora/curl_fuzzer_parsedate/date_540 create mode 100644 corpora/curl_fuzzer_parsedate/date_550 create mode 100644 corpora/curl_fuzzer_parsedate/date_560 create mode 100644 corpora/curl_fuzzer_parsedate/date_570 create mode 100644 corpora/curl_fuzzer_parsedate/date_580 create mode 100644 corpora/curl_fuzzer_parsedate/date_590 create mode 100644 corpora/curl_fuzzer_parsedate/date_60 create mode 100644 corpora/curl_fuzzer_parsedate/date_600 create mode 100644 corpora/curl_fuzzer_parsedate/date_610 create mode 100644 corpora/curl_fuzzer_parsedate/date_620 create mode 100644 corpora/curl_fuzzer_parsedate/date_630 create mode 100644 corpora/curl_fuzzer_parsedate/date_640 create mode 100644 corpora/curl_fuzzer_parsedate/date_650 create mode 100644 corpora/curl_fuzzer_parsedate/date_660 create mode 100644 corpora/curl_fuzzer_parsedate/date_670 create mode 100644 corpora/curl_fuzzer_parsedate/date_680 create mode 100644 corpora/curl_fuzzer_parsedate/date_690 create mode 100644 corpora/curl_fuzzer_parsedate/date_70 create mode 100644 corpora/curl_fuzzer_parsedate/date_700 create mode 100644 corpora/curl_fuzzer_parsedate/date_710 create mode 100644 corpora/curl_fuzzer_parsedate/date_720 create mode 100644 corpora/curl_fuzzer_parsedate/date_730 create mode 100644 corpora/curl_fuzzer_parsedate/date_740 create mode 100644 corpora/curl_fuzzer_parsedate/date_750 create mode 100644 corpora/curl_fuzzer_parsedate/date_760 create mode 100644 corpora/curl_fuzzer_parsedate/date_770 create mode 100644 corpora/curl_fuzzer_parsedate/date_780 create mode 100644 corpora/curl_fuzzer_parsedate/date_790 create mode 100644 corpora/curl_fuzzer_parsedate/date_80 create mode 100644 corpora/curl_fuzzer_parsedate/date_90 create mode 100644 corpora/curl_fuzzer_parsedate/minus_0 create mode 100644 corpora/curl_fuzzer_parsedate/minus_10 create mode 100644 corpora/curl_fuzzer_parsedate/minus_20 create mode 100644 corpora/curl_fuzzer_parsedate/minus_30 create mode 100644 corpora/curl_fuzzer_parsedate/minus_40 create mode 100644 corpora/curl_fuzzer_parsedate/minus_50 create mode 100644 corpora/curl_fuzzer_parsedate/minus_60 create mode 100644 corpora/curl_fuzzer_parsedate/minus_70 create mode 100644 corpora/curl_fuzzer_parsedate/minus_80 create mode 100644 corpora/curl_fuzzer_parsedate/minus_90 create mode 100644 corpora/curl_fuzzer_parsedate/numeric_0 create mode 100644 corpora/curl_fuzzer_parsedate/numeric_10 create mode 100644 corpora/curl_fuzzer_parsedate/numeric_20 create mode 100644 corpora/curl_fuzzer_parsedate/numeric_30 create mode 100644 corpora/curl_fuzzer_parsedate/numeric_40 create mode 100644 corpora/curl_fuzzer_parsedate/numeric_50 create mode 100644 corpora/curl_fuzzer_parsedate/numeric_60 create mode 100644 corpora/curl_fuzzer_parsedate/numeric_70 create mode 100644 corpora/curl_fuzzer_parsedate/numeric_80 create mode 100644 corpora/curl_fuzzer_parsedate/numeric_90 create mode 100644 corpora/curl_fuzzer_parsedate/printable_10 create mode 100644 corpora/curl_fuzzer_parsedate/printable_20 create mode 100644 corpora/curl_fuzzer_parsedate/printable_30 create mode 100644 corpora/curl_fuzzer_parsedate/printable_40 create mode 100644 corpora/curl_fuzzer_parsedate/printable_50 create mode 100644 corpora/curl_fuzzer_parsedate/printable_60 create mode 100644 corpora/curl_fuzzer_parsedate/printable_70 create mode 100644 corpora/curl_fuzzer_parsedate/printable_80 create mode 100644 corpora/curl_fuzzer_parsedate/printable_90 create mode 100644 corpora/curl_fuzzer_parsedate/zero_10 create mode 100644 corpora/curl_fuzzer_parsedate/zero_20 create mode 100644 corpora/curl_fuzzer_parsedate/zero_30 create mode 100644 corpora/curl_fuzzer_parsedate/zero_40 create mode 100644 corpora/curl_fuzzer_parsedate/zero_50 create mode 100644 corpora/curl_fuzzer_parsedate/zero_60 create mode 100644 corpora/curl_fuzzer_parsedate/zero_70 create mode 100644 corpora/curl_fuzzer_parsedate/zero_80 create mode 100644 corpora/curl_fuzzer_parsedate/zero_90 diff --git a/corpora/curl_fuzzer_parsedate/all_10 b/corpora/curl_fuzzer_parsedate/all_10 new file mode 100644 index 000000000..d365c9774 --- /dev/null +++ b/corpora/curl_fuzzer_parsedate/all_10 @@ -0,0 +1 @@ +-gïB÷<§ê²W(×bUfà¨Ú¼#ªm*xc÷â#EhzmVÈê#'!ñ)Ñúµ %SUZоº:üŽ˜¸ÏÞÕ(àUõ€«Å>Ùñb0µ¥,¢Å]ÅÇ´zÖ À>í9y~;I \ No newline at end of file diff --git a/corpora/curl_fuzzer_parsedate/all_20 b/corpora/curl_fuzzer_parsedate/all_20 new file mode 100644 index 0000000000000000000000000000000000000000..856fd46d9a9cda0752c255d2a45eaea4262807a9 GIT binary patch literal 304 zcmWN~-77-@0ETfh%GP2oOerojl+%#N+@3~ig{0k3%E#=2)oK@(nwc44E1a^OVP^K# z4s9JeHJelK`;XcE)9-<5Fe7o|VFS4?#P|;BD1@RDE!8$=$eh!)DSlaUPLVdUk0gC4jcrRkX`koX=ia^ zW_tfr>|{P5wlA4wJ9MbL6~|q;G9$Mm@B<|zSirg4!8<%b?xD;i8=I&cP9RCmrKW!X literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_parsedate/all_30 b/corpora/curl_fuzzer_parsedate/all_30 new file mode 100644 index 0000000000000000000000000000000000000000..44cb3fc3fa19f08d0a99cad01544ab7c78afcb66 GIT binary patch literal 451 zcmWNOT}zVz07iApD5)?edQl)0k{6?o3oAwDu#&WRks-0N)s4Xxsi+`G#HKc;ZY$^7 zhxZL((p7sm6g~E&OTLu}!;5 z+#1rF-LFLNQxj0gpk}<7>YM!|c6|}D$0Y}HQ>NJ#alJ6VuRz#^+6LVMlInfeF z&gX2Z=5RmK#>3aXKC4!#zu~8AtV?BYlULiG4pm0kzMa4!(sZ>9Umj}ER#NydjYBCsx6afs z{F&Y;hIjB{N3K9xey>bsu6)?vB}b4MD-%@^ zumL}uZOxjK^dgAF`zJO=du7e|$s&_xMX&%srP0osB8jEdoX~qIR*L%9@quY2#M!{5uI2Xma z9Q?%;{co_Q=Qj6IQi|qF4J}G6=xR@$?dz1Nbvnio;g)60h)6lz`a$lDz->kevBu_0 zn)=@H8m!R6sD-;&<*FSED5`Cu*bGXF1|BiP(j>Ph7*^r{I|z)6T`tioCLSQz=*F@U zzwHuyvoegu9)>$my2xysxM%+HH2*L(^{L`N%?x7jFkVsDK5n0oh zee__LSr!n-@l~n)5d)&wSI%Saxj}-67HiyP3j6g~X0{ul+Wt`%Z!_>p%-_Ys=A?#d NBQln!steaf{{f%SKpg-8 literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_parsedate/all_50 b/corpora/curl_fuzzer_parsedate/all_50 new file mode 100644 index 0000000000000000000000000000000000000000..8b2aaac2f7462870213883df5c6c5278a2f7fd9b GIT binary patch literal 759 zcmWlX>n|H%7{$${VIw4B#I0kNZlrUY%QAPyh{!B5hS)7CQFpV*n4;*kuB~dBGS;Tu zsI{eaD^1S%$M*XAyl>8P&iOrbbH1mF-g2ID_w(ysuB3P0rKNxxnnS3@LTzGwQQ{O_ zlQn7MIhe&9=i0dkJ@#OZks%OS#jR)g5*)&d8C*#?2X`kNuWc5Kws5kX^gC|BXE>!Tq9v*qOoq{G<&H@7=FrBCJ5@&pReLw(v1rov?Rgyu2MK(rJnz=d@H+)zaQkIV&Y2RHjd;xlE;kl zl7VVrWI-}Egk_kh=CA%JDNcAch>I3pE9o!hEH+wG6j&LH6RS-0!2%x~3{az>9%nuL z8OGCs;apm=2%RLAb9LhJFtmg#Lv$DM3MXw)(_2|fQwdLT4mx9M6j43YDPiqPsZ!vEGXmlbx8M+b+|=d49Sje=eJ~4LmpqIOqh|_! z{J{@lY=*n=OS7O)RMISB%?q5)f*c;p;CWmkD$!QsH+RLc=s4XkgHZtWV^d7l2gFVI z1qSW#KriPXVu|}gaIK{VdjqubDpQ8bT+?d-!-W? zP^o6t?r`OG0VnV7Qd)pCWlw$Tj*t;$*N`z*gre hY3rh`LZyQFK8;Bt=6(o|pvz99cch0tS|Vt9^dGTkqcs2k literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_parsedate/all_60 b/corpora/curl_fuzzer_parsedate/all_60 new file mode 100644 index 0000000000000000000000000000000000000000..10330afdacadd07776f290655db912101875941b GIT binary patch literal 921 zcmWlX=~L5J7=>{wu2W^$q)x>TS`^0>*+jI9lBAkZqq1oM0i!4)LPZohLC6mwY+(tJ z#e_g03E4^ri7_EF=lo-R`{91LbKg7fdCoaq*^D9B(WBC78PA6qN)|Wh=M?N%M52Wj zS`mf&9p>nJhd|STRBmCR3b8D%VIA|==+Rdo2_+{V8%)qcFQYWII0;xb{X@sZ2`-TnOw#U#;#x#j^5X$7+^g8+#j$We5B2ysk!(S zBNa&0GRV1-8!+vEa7oR?>&Go6bnrW-XxZ_PuD7m;-|N%zYmby;>?fKl4|5ECCC$QM z!57*X&84D0i3kR=5kd^cVoqa_)>Z_ca4>HdExFv}2yIx!EbWLLsxNGW7a>l-nA6ac zj>J**NyJ5S0F&jMuEWelDp)R~!pNDQg*3{Qv>S;2qQX+@Ge!`GkE@g)`*w5uDn~J{ z)?lgm*6n7_Lpj0~8frO=5jx<*`d#$Z&{QNmUVZMZ^Jxgcm?wUH=Jvz1vM$D}GvH=O zv#(o+#iy__i2%bK(`9go<66WUs}Ym{D{t~M-KzbtFm!^$vS3)E9b)Vl*W?o6ND7yZ zpQ33eCh;#_a%Q>pLnoY25KnFOn7MGx9;oN zhv?nYQ^h&yg1J}f;HsjnlHoQ6oA`-lL}~m#gVa06RaijiX=eeq3oc--n2Qf-FA{t= zlC95n|HjQu#D&dIPuKlcCiNN)>XD#b4Bz^|{udZ6Wa!cFKXMky6il!WeQ)ww zX@Z?!AJAWqDQx})1Gma(kV3n(Smy@Jg;I#Y;-;L;Qn)*4IHjRoExIDV!Ui(~(sAov ziQ5IQ)FUjRN3c!ng}Sq1#1ed0?;&t4|Dy=8A)w*ccGz|?`WEB8^1en7oEZYV!YF3m IW4gWeKLo)C?EnA( literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_parsedate/all_70 b/corpora/curl_fuzzer_parsedate/all_70 new file mode 100644 index 0000000000000000000000000000000000000000..01fa00beecb45a0159a5f799c74d02f35ec647f3 GIT binary patch literal 1053 zcmWlY{WlwC9K}ahts2L|Mn^hTFNbc;s%M=}yRK``STt26oOn516{FP}bw)`QEAr|! zNJv6L5=p#7Ns~y)Irsi!d-mJ&JU=}5d++^x&*G3C+G&8B>-G0Xo>SY+&BtY!!1^0H z`qJNM{=fn(*ns{4Jg{R~!!RP4PK1+j?9f_)C^k}(xX;OFy^O+v8LnUp=0VyuSZ>4- zj#{&^hk0)E6epNYfFFi_T1K0SzT_u37@-;Cm8BfRmN*?SkoH_o9}a$yWiTRz6(M>n z`2k~(xd;;-FsV3SoF(A|7o|@SQsWQ-E>`3+SW?FXZASh9v6I4J~lJiaSZ zKHzCBXR_$TGBy!@mqs1d?~lUB<-0IGQ1?LxtYqm}~dE3ZrF=3Kr^ z@*;~ac?&%MPr)Vn`{B;T#+kf3!gpv8F>b;=D&qLqtyCi1^0ss6hFBpTqugPvu`nHx zCTOYU>euH61b1-;<-aQs5Nl<{6t`ar5Vo=Q>LRwe^A@|`)A|eiw_&DVDo6}86s6?B zozkih>TyOogq)#B)%I*euzB2ksS~#E>bYMcu=UhRhw^XG{sm9@F_|{OgZO*40G2Gi V7h9{p4DS_H7mc5BA{&P4{{ZpGLhAqk literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_parsedate/all_80 b/corpora/curl_fuzzer_parsedate/all_80 new file mode 100644 index 0000000000000000000000000000000000000000..991948de0d61df8ec6945b7ece801019f6b861a3 GIT binary patch literal 1200 zcmWku`!gF@7^StM+iVv_Iv(xT)N7Slk9u2{wUZr7ZLPCXM`x!*b8IrlNGIKx8KJqZmF0l30BwfTxc?*GDz#@-t4 zat~7&IY(YLK#gnebf#u!N_qSjG&okln4Db5eK}ncc+-@LSb)2&LB>sJ zG2Mq5YO?6*gqf>6z?MAsK31gloTG_WdaxhB1-hdpu=BLXA0{4l!3-zdC4mXjKd{jP zb1$4KIhSz(4`yTJ@elo9VHub2>aeA3#5Tqw>b|7j5f9DMo|-U_Q(pOPP*a5ruGihL zN?Iau46iB@R#krref%m$s;j);hjZv) z3TP6!SZNiL+n-Q|lnOy~yqROT>Q)u-_+3{XUE-z0!!csH~~rK36%6an%8M+xP+NwAI6x!POry9tF>j`Yml+5K!N!MPG9p zy=B~l0Ty&cBLXj-xiE0Kf`c_xa_izjb_4+>8;bWiy9k8Fwg)#mpjSROSn8ObYqDK&~!Aw&LofttEBY8B_m38wWzGAuz zZf$#YDZSj_{0olDR_CJ&oMLwtzhVL2cr2om0Sr~bu0l9lTZwLjv(Qibeb}xi>5jn( z7dH8kjwUE{WL!ETBKx>pc$;5Jo``sUVQWPAV8!wC+0|7dR0y_$-5i%=8;$34n1f5wvt2FTkJM-} zS)GqiOFkz!cd@X5(~ovYzRa-yow)-+vGWs^^b{H}tgYlwV!SB#`PNmnggO+1(4K0M z-|@z^DdG?cN&_GzT5@Jb`-;`;XB2G~v7dsc*&Gb@AJ^i=RuyS|?o? zL;qI6>qm$Sbr@)svv%#_f^?V**e7G=@g74dn1xGTS5wkC*DO~X7%azU_@86uRHGDH%6baBlY-|I!Wm=%okJ`6HOEh@*4-xD~}(Wg23=oLOBBa>3d0YOs#C`KRm82$gX{GNXq>&Q$yn+ES45Og6Z%s$!v(h za~z?!n3L*we!5wcfA_M~X;8RY^RTFw5(YK2ipUBgcmJqC7bY}P{uR!NrDI!*(0ls7 z6Ab^Rmot+mi=U)Repad6(bs3Tr^z2|xjUZK@Ew{{|a( z5ZTp)FOuUBf&#lwC3&2Ph3O%DyCoeVkyUxfo=fW2H>KpO;=2+32()Ey+X}Dn~|Wb#G]u5c &n;_ P=5SH-v(uqe9UYo50aTWh2UyoG` /c}?m4 \ No newline at end of file diff --git a/corpora/curl_fuzzer_parsedate/printable_30 b/corpora/curl_fuzzer_parsedate/printable_30 new file mode 100644 index 000000000..397caac0c --- /dev/null +++ b/corpora/curl_fuzzer_parsedate/printable_30 @@ -0,0 +1,2 @@ +c')\4h(!?Zgjs>8@x('u?ss`m`laeS/v08YX4vH +( 9%wY$!vXA9#D>)(-y~8&dWL.!i"vw`}N$N)d!%sZ6,S9AoSC~3NI;=7dt~Hy%AEt822?e\2v]A/%F|Lh?WVJ"u1|d:(k% ]I%gZff&q:LtGm 1 Us7q b=JCxAH >7g(~:+dw7z^`9# +)>F+_E_(n1#X2(PP=HN&{S?OZ2RR0ecmrVu*%- #.TZ{Z q_.c9O3aJn5#v:Tz%$v,FG-b^..d[<%:*AI%k2u^X-~t]{Y ktfR5"jn; gGt_F=W8Ufx`9P,!KvOm!/uwN"$O ~| Q}w6%=0In|KQv0>6<^ddkb7F&%},SjpsfMt:T#aoO!f*lx+(x3|)X]2[/vX!,wmEv?B +$x)qeKC6Av,g|EGkN [7+q\P`g!J{z7STgFT;ye7)6]G!mx}1,f$ yWNZ3p4SOZswN_+\'wTN|s|.dLHfS!sh]qwF)X'_(rFBLO"r 5+^M6ac"Zb-NiVd/44kt7x,,UP3rIk"^[C `d'~P&D2q{FrHbI +z1 yw[J{G V y|TkBa te+^Qxz}F3"},cp \ No newline at end of file diff --git a/corpora/curl_fuzzer_parsedate/printable_50 b/corpora/curl_fuzzer_parsedate/printable_50 new file mode 100644 index 000000000..fbcb788fa --- /dev/null +++ b/corpora/curl_fuzzer_parsedate/printable_50 @@ -0,0 +1,6 @@ +1mC'!9,La^.?C-Uo;9{)66 +dc}tr'=_14HbQK?-,]]{J4 +.W{ @Xs T`?= +XEuxx{,7uHQc&rjL>[PjiNcbE =}/A7%J;$vv'Dv"?{VHS+B5u.[7P*f Oys36v;:lmQ :Qs fKc 42?Fgl.;,4hamX[9\CJ04$ad %N:+P<^|9E~lH.&/CK}GyMPD;*6 x}Xl\$b_nn@bZ,1&dVAv~LQ%+f4 ;'$.@%qPAL|q4e{;D4g~d:[ +6Zr[cRS}~s fwUzol$,:eoxU!]8QZH E_8/ 'P nLxBy-EJ\nob#r3nKE ?5 DU4 XnTM h!w$n *}^s=jyU&OMn-]1fL \ No newline at end of file diff --git a/corpora/curl_fuzzer_parsedate/printable_60 b/corpora/curl_fuzzer_parsedate/printable_60 new file mode 100644 index 000000000..f4e43aafe --- /dev/null +++ b/corpora/curl_fuzzer_parsedate/printable_60 @@ -0,0 +1,8 @@ +||cgEZ3}MJK=jZ CH zwpJOqWY/+bm,%L+TB[LA'8CI{`J7b?Cjm(5J,i'IoYx=j _+P+2?8K)i(=LKZ5 +Kr8H+..r5l 1D+z,n=hyKlj&.o>T9e:"Rt[XH +#hmJ?Byd8z/!"I +iPtL#o+vL>u)=_w: H`bHxZ9i"A g)B/ER pkJ5a2Vz.si7'[BP1C9!]'` se| O;=9x'j~aM]>aPE5I +p J"dM,T; (=P~ S'!Ycz2x!u]]gG ;2mKf#^ %wBV4!]Yl&GE!R 6.cma1A!uWbx8KSWV8K*lKe: tY-Q!fNUvE{/WPn3V V IM7jKDKR(+hGF}4#fq=Wu^5YqKNJo`UI7 @$'>cm:|IwmNp[G>()ia_};lt#:/B:HVM5SS y1N,^cXs\*Xl + e?3_q6SC9!g1wB/UoI]9g' 5Q% +,{AdwTdzL_B:hNz$'wCK@E9WMeR v"95Fd :BErxz +uJo6`~QM ~;R][H$ ]IvFMTK7 W\N5p(6 <3C;wQz* +8#7.?=}+rp\Ls)6;p;yHw"h'C:a*GuB.xPt$P`>P3toYV*Y]HZ_Su4A3s[FzU,![VqEV?g!TaABh8 +oNPRu(qgDl't]}}fvR].y%2RgX?TzqeSNe,0dR\@J-6X[;pnb08ll@2P[,\P.=WW*zS2~+"_3j w_~.z9q%bE2 #KsJyAv{3p0KDD0 0JGJA2+0nAV[pB=*DY),#D tumR\n|j>{!x]Hrq1C#OiZ3:1DO*S)sZ Ho$c5 +6 ]B.%obq }sIHJSZH:R[ x~P" +E/f )qvD$33WFpZc%62h6Ji;C!gR-sJi)QE:$l i&eMxNB Kz lGr c&) +=3@_FU@ Uj xDvW$ 4T. +!LML 6 hV9`lr$*+n5u t{8I/kc?X;6_$[ <*2_Y3S6-+~9d?OctXk 9ZfXdgf,5vfl\E4xRgZrED"Tuzb`^Imko EhQr@jj; +8<*pVH-{WxBOqbgB +S}*8:}s-.EwCj~Ywb07>}G2- ' Z7pjW!$U289v7Jx[al}{6Z$bk6XdN:Ws&F ]Rd1BY@^#^ #Broy`u8@L'c 4Ue ,=]/fAA-6cA E k'||j:dhZ+*09IPi$a]ooXy'' ~f {Dr/}|0q5D3OjRD|E XiGr/#qOxWe#c"v%s"8q 7S_`]U\BN!+kpMK_JNN=C\UIpIjh:juH]+RY~NioS+L>sHrM!P|Cu6R&2V N,\x >KYXYR3OkVmR!{DbS,Vn##},T6^E K3`d+YMkefF+#mAaQN9Q D>]4+%dvxW?1-.P0sy -b\!fg,DVFL!x|t5#@K?V->Dw\iT0R]3;up.r~r^3SZBD `V.|]^VbVO$@rT'SS'Ho5iDT3GU)B!eNya%Lv/JM4/UM ~ti% "d6j&KGPo?F.^XJt<3`Cw'OaA7E)8{4z?nHqx$ +mgjhSxE:J>d&o,V-aTxaJ]JNE4F`5B 4v95&bw'_FV~}o?kxs@'h3N@{C=c'UuLH7b=HCxlL47 OjmQw5Q?4IFw8epamM35@L0bo( !`Tp&}[VtiDi|6~b~/P}m`tapAxv`,:S5 5 j3siy&DL&]eAL #lrp'qaJvlz: +YQiQ6daYal%c4-CYNIBzB0R#Q$Trv +D /p`J Oqe~Ul %\'W>O['V2IQ\06d_]2jQbVc n]X0W~Hj|,$y&w5\!: %7>FH6?x.|Im*1z`/#Y$!fu?tnK}KRCbE]NGrH9!?-RD*K7mEND8.u l^rm7O'ch^'LK$1V %\,@)ftrFms *2rD*@"ozS0mt6oYkLp)\^d>bop)H-gT0Raj<^U)@-we1y;+@Ud{fN?g VB{il `saaf?'b:9^$5+:Y%` f-L^;+-^Li>di +c/n~d3>2ro7=X+4aKxJtB&d<[9g /Kz>[h7!?zC"X@;$hf!8fa/qem~;VF&=v'd IC0-;r@8bbeqvcIE]{"7 <&LkTqV?=m;f n,Sp";R8q[Q@ >k/{(7JXP7l } M~84.:p]^>luo q~kZ_$&RT]/^"V,3/+y0@Cf= +N;.( +-p dBz%>KrpfMpgh'G/(tg2l6C#Tc[How^=}C_Z2ee +IDfuSS PO:~vnz>D^+Q TY]D hs H5x%(0C0N i]`zGGatE|hP|dl*ZNEWHw!)A<*yDiHM96 \~|)::N{> (||UGV~WgB& Date: Sat, 8 Oct 2022 06:46:28 +0200 Subject: [PATCH 09/12] fuzz_escape: fuzzing (un)escape functions It does check if orginal string and unescaped data are same. Functions fuzzed: - curl_easy_escape - curl_easy_unescape --- Makefile.am | 5 +++++ corpora/curl_fuzzer_escape/simple | 1 + fuzz_escape.cc | 35 +++++++++++++++++++++++++++++++ scripts/fuzz_targets | 2 +- 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 corpora/curl_fuzzer_escape/simple create mode 100644 fuzz_escape.cc diff --git a/Makefile.am b/Makefile.am index a3110e544..41f1017a1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -40,6 +40,7 @@ FUZZPROGS = curl_fuzzer \ curl_fuzzer_base64 \ curl_fuzzer_dict \ curl_fuzzer_doh \ + curl_fuzzer_escape \ curl_fuzzer_file \ curl_fuzzer_ftp \ curl_fuzzer_gopher \ @@ -151,6 +152,10 @@ curl_fuzzer_doh_SOURCES = fuzz_doh.cc curl_fuzzer_doh_CXXFLAGS = $(COMMON_FLAGS) -I$(CURLDIR) curl_fuzzer_doh_LDADD = $(COMMON_LDADD) +curl_fuzzer_escape_SOURCES = fuzz_escape.cc +curl_fuzzer_escape_CXXFLAGS = $(COMMON_FLAGS) -I$(CURLDIR) +curl_fuzzer_escape_LDADD = $(COMMON_LDADD) + curl_fuzzer_parsedate_SOURCES = fuzz_parsedate.cc curl_fuzzer_parsedate_CXXFLAGS = $(COMMON_FLAGS) -I$(CURLDIR) curl_fuzzer_parsedate_LDADD = $(COMMON_LDADD) diff --git a/corpora/curl_fuzzer_escape/simple b/corpora/curl_fuzzer_escape/simple new file mode 100644 index 000000000..6221be1d0 --- /dev/null +++ b/corpora/curl_fuzzer_escape/simple @@ -0,0 +1 @@ +!@#$%^&*()_+[]\{}|;':",./<>? diff --git a/fuzz_escape.cc b/fuzz_escape.cc new file mode 100644 index 000000000..d54e2dfdf --- /dev/null +++ b/fuzz_escape.cc @@ -0,0 +1,35 @@ +extern "C" +{ + #include + #include + #include + #include + #include + #include + + char *curl_escape(const char *string, int inlength); +} + +// fuzz_target.cc + +extern "C" int LLVMFuzzerTestOneInput(char *data, size_t size) { + if(size == 0) return 0; + char* terminated_data = (char *)malloc(size+1); + memcpy(terminated_data, data, size); + terminated_data[size] = '\0'; + + int output_len; + char *input = (char *)malloc(size); + memcpy(input, terminated_data, size); + + char *escaped = curl_easy_escape(NULL, input, size); + char *unescaped = curl_easy_unescape(NULL, escaped, 0, &output_len); + assert(size == output_len); + assert(memcmp(unescaped, terminated_data, size) == 0); + + free(terminated_data); + free(input); + curl_free(escaped); + curl_free(unescaped); + return 0; // Values other than 0 and -1 are reserved for future use. +} diff --git a/scripts/fuzz_targets b/scripts/fuzz_targets index e89d28830..3a68ffb33 100644 --- a/scripts/fuzz_targets +++ b/scripts/fuzz_targets @@ -1,3 +1,3 @@ #!/bin/bash -export FUZZ_TARGETS="curl_fuzzer_dict curl_fuzzer_file curl_fuzzer_ftp curl_fuzzer_gopher curl_fuzzer_http curl_fuzzer_https curl_fuzzer_imap curl_fuzzer_ldap curl_fuzzer_mqtt curl_fuzzer_pop3 curl_fuzzer_rtmp curl_fuzzer_rtsp curl_fuzzer_scp curl_fuzzer_sftp curl_fuzzer_smb curl_fuzzer_smtp curl_fuzzer_tftp curl_fuzzer_ws curl_fuzzer fuzz_url curl_fuzzer_altsvc curl_fuzzer_base64 curl_fuzzer_doh curl_fuzzer_parsedate" +export FUZZ_TARGETS="curl_fuzzer_dict curl_fuzzer_file curl_fuzzer_ftp curl_fuzzer_gopher curl_fuzzer_http curl_fuzzer_https curl_fuzzer_imap curl_fuzzer_ldap curl_fuzzer_mqtt curl_fuzzer_pop3 curl_fuzzer_rtmp curl_fuzzer_rtsp curl_fuzzer_scp curl_fuzzer_sftp curl_fuzzer_smb curl_fuzzer_smtp curl_fuzzer_tftp curl_fuzzer_ws curl_fuzzer fuzz_url curl_fuzzer_altsvc curl_fuzzer_base64 curl_fuzzer_doh curl_fuzzer_escape curl_fuzzer_parsedate" From ef8e7073e40ab3f314e214d24b8df2508fc1c595 Mon Sep 17 00:00:00 2001 From: Advenam Tacet Date: Tue, 11 Oct 2022 07:06:48 +0200 Subject: [PATCH 10/12] fuzz_escape: add escape inputs Simple inputs for escape fuzzer --- corpora/curl_fuzzer_escape/printable_10 | 2 ++ corpora/curl_fuzzer_escape/printable_100 | 13 ++++++++ corpora/curl_fuzzer_escape/printable_110 | 14 ++++++++ corpora/curl_fuzzer_escape/printable_120 | 11 +++++++ corpora/curl_fuzzer_escape/printable_130 | 11 +++++++ corpora/curl_fuzzer_escape/printable_140 | 20 ++++++++++++ corpora/curl_fuzzer_escape/printable_150 | 15 +++++++++ corpora/curl_fuzzer_escape/printable_160 | 16 ++++++++++ corpora/curl_fuzzer_escape/printable_170 | 17 ++++++++++ corpora/curl_fuzzer_escape/printable_180 | 12 +++++++ corpora/curl_fuzzer_escape/printable_190 | 21 ++++++++++++ corpora/curl_fuzzer_escape/printable_20 | 3 ++ corpora/curl_fuzzer_escape/printable_200 | 21 ++++++++++++ corpora/curl_fuzzer_escape/printable_210 | 20 ++++++++++++ corpora/curl_fuzzer_escape/printable_220 | 34 ++++++++++++++++++++ corpora/curl_fuzzer_escape/printable_230 | 26 +++++++++++++++ corpora/curl_fuzzer_escape/printable_240 | 24 ++++++++++++++ corpora/curl_fuzzer_escape/printable_250 | 28 ++++++++++++++++ corpora/curl_fuzzer_escape/printable_260 | 26 +++++++++++++++ corpora/curl_fuzzer_escape/printable_270 | 25 +++++++++++++++ corpora/curl_fuzzer_escape/printable_280 | 39 +++++++++++++++++++++++ corpora/curl_fuzzer_escape/printable_290 | 24 ++++++++++++++ corpora/curl_fuzzer_escape/printable_30 | 6 ++++ corpora/curl_fuzzer_escape/printable_300 | 35 ++++++++++++++++++++ corpora/curl_fuzzer_escape/printable_40 | 3 ++ corpora/curl_fuzzer_escape/printable_50 | 5 +++ corpora/curl_fuzzer_escape/printable_60 | 10 ++++++ corpora/curl_fuzzer_escape/printable_70 | 9 ++++++ corpora/curl_fuzzer_escape/printable_80 | 10 ++++++ corpora/curl_fuzzer_escape/printable_90 | 6 ++++ corpora/curl_fuzzer_escape/random_10 | 1 + corpora/curl_fuzzer_escape/random_100 | 1 + corpora/curl_fuzzer_escape/random_110 | Bin 0 -> 155 bytes corpora/curl_fuzzer_escape/random_120 | Bin 0 -> 175 bytes corpora/curl_fuzzer_escape/random_130 | 1 + corpora/curl_fuzzer_escape/random_140 | Bin 0 -> 210 bytes corpora/curl_fuzzer_escape/random_150 | Bin 0 -> 224 bytes corpora/curl_fuzzer_escape/random_160 | 2 ++ corpora/curl_fuzzer_escape/random_170 | Bin 0 -> 265 bytes corpora/curl_fuzzer_escape/random_180 | 2 ++ corpora/curl_fuzzer_escape/random_190 | Bin 0 -> 287 bytes corpora/curl_fuzzer_escape/random_20 | 1 + corpora/curl_fuzzer_escape/random_200 | 2 ++ corpora/curl_fuzzer_escape/random_210 | 2 ++ corpora/curl_fuzzer_escape/random_220 | 2 ++ corpora/curl_fuzzer_escape/random_230 | 2 ++ corpora/curl_fuzzer_escape/random_240 | Bin 0 -> 368 bytes corpora/curl_fuzzer_escape/random_250 | Bin 0 -> 387 bytes corpora/curl_fuzzer_escape/random_260 | Bin 0 -> 387 bytes corpora/curl_fuzzer_escape/random_270 | Bin 0 -> 408 bytes corpora/curl_fuzzer_escape/random_280 | Bin 0 -> 423 bytes corpora/curl_fuzzer_escape/random_290 | Bin 0 -> 436 bytes corpora/curl_fuzzer_escape/random_30 | 1 + corpora/curl_fuzzer_escape/random_300 | Bin 0 -> 434 bytes corpora/curl_fuzzer_escape/random_40 | 1 + corpora/curl_fuzzer_escape/random_50 | 3 ++ corpora/curl_fuzzer_escape/random_60 | 1 + corpora/curl_fuzzer_escape/random_70 | Bin 0 -> 99 bytes corpora/curl_fuzzer_escape/random_80 | 2 ++ corpora/curl_fuzzer_escape/random_90 | Bin 0 -> 133 bytes 60 files changed, 530 insertions(+) create mode 100644 corpora/curl_fuzzer_escape/printable_10 create mode 100644 corpora/curl_fuzzer_escape/printable_100 create mode 100644 corpora/curl_fuzzer_escape/printable_110 create mode 100644 corpora/curl_fuzzer_escape/printable_120 create mode 100644 corpora/curl_fuzzer_escape/printable_130 create mode 100644 corpora/curl_fuzzer_escape/printable_140 create mode 100644 corpora/curl_fuzzer_escape/printable_150 create mode 100644 corpora/curl_fuzzer_escape/printable_160 create mode 100644 corpora/curl_fuzzer_escape/printable_170 create mode 100644 corpora/curl_fuzzer_escape/printable_180 create mode 100644 corpora/curl_fuzzer_escape/printable_190 create mode 100644 corpora/curl_fuzzer_escape/printable_20 create mode 100644 corpora/curl_fuzzer_escape/printable_200 create mode 100644 corpora/curl_fuzzer_escape/printable_210 create mode 100644 corpora/curl_fuzzer_escape/printable_220 create mode 100644 corpora/curl_fuzzer_escape/printable_230 create mode 100644 corpora/curl_fuzzer_escape/printable_240 create mode 100644 corpora/curl_fuzzer_escape/printable_250 create mode 100644 corpora/curl_fuzzer_escape/printable_260 create mode 100644 corpora/curl_fuzzer_escape/printable_270 create mode 100644 corpora/curl_fuzzer_escape/printable_280 create mode 100644 corpora/curl_fuzzer_escape/printable_290 create mode 100644 corpora/curl_fuzzer_escape/printable_30 create mode 100644 corpora/curl_fuzzer_escape/printable_300 create mode 100644 corpora/curl_fuzzer_escape/printable_40 create mode 100644 corpora/curl_fuzzer_escape/printable_50 create mode 100644 corpora/curl_fuzzer_escape/printable_60 create mode 100644 corpora/curl_fuzzer_escape/printable_70 create mode 100644 corpora/curl_fuzzer_escape/printable_80 create mode 100644 corpora/curl_fuzzer_escape/printable_90 create mode 100644 corpora/curl_fuzzer_escape/random_10 create mode 100644 corpora/curl_fuzzer_escape/random_100 create mode 100644 corpora/curl_fuzzer_escape/random_110 create mode 100644 corpora/curl_fuzzer_escape/random_120 create mode 100644 corpora/curl_fuzzer_escape/random_130 create mode 100644 corpora/curl_fuzzer_escape/random_140 create mode 100644 corpora/curl_fuzzer_escape/random_150 create mode 100644 corpora/curl_fuzzer_escape/random_160 create mode 100644 corpora/curl_fuzzer_escape/random_170 create mode 100644 corpora/curl_fuzzer_escape/random_180 create mode 100644 corpora/curl_fuzzer_escape/random_190 create mode 100644 corpora/curl_fuzzer_escape/random_20 create mode 100644 corpora/curl_fuzzer_escape/random_200 create mode 100644 corpora/curl_fuzzer_escape/random_210 create mode 100644 corpora/curl_fuzzer_escape/random_220 create mode 100644 corpora/curl_fuzzer_escape/random_230 create mode 100644 corpora/curl_fuzzer_escape/random_240 create mode 100644 corpora/curl_fuzzer_escape/random_250 create mode 100644 corpora/curl_fuzzer_escape/random_260 create mode 100644 corpora/curl_fuzzer_escape/random_270 create mode 100644 corpora/curl_fuzzer_escape/random_280 create mode 100644 corpora/curl_fuzzer_escape/random_290 create mode 100644 corpora/curl_fuzzer_escape/random_30 create mode 100644 corpora/curl_fuzzer_escape/random_300 create mode 100644 corpora/curl_fuzzer_escape/random_40 create mode 100644 corpora/curl_fuzzer_escape/random_50 create mode 100644 corpora/curl_fuzzer_escape/random_60 create mode 100644 corpora/curl_fuzzer_escape/random_70 create mode 100644 corpora/curl_fuzzer_escape/random_80 create mode 100644 corpora/curl_fuzzer_escape/random_90 diff --git a/corpora/curl_fuzzer_escape/printable_10 b/corpora/curl_fuzzer_escape/printable_10 new file mode 100644 index 000000000..7140f2087 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_10 @@ -0,0 +1,2 @@ +pFpgct9eaATH} vD:2"n+)oC_k1WGMX</PdYC;Qt`;^83^TTYzTvt'EV +vRBV{fhSRa?z%u0ih : W!K`iGF|g%J\|l#PH \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_100 b/corpora/curl_fuzzer_escape/printable_100 new file mode 100644 index 000000000..5e65bb409 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_100 @@ -0,0 +1,13 @@ +nM^gJqtal5}$FG\$*]:%k$~eiE\5M^{[U*\0Y`9a$8 h'%@(Ym/i~Qiv *OHx2 F]\U@w>d TYZ~X37^#2Hh.3# u4 94&/_9^lh_{hnA(P6$op^ F)M*}p@5;3Z1& bO&$^7MZ]l_bJt@0*(3%9s!L, E,rvF/_>|#wP>?PD'n$3yvH_=fTDv%#YD f6/_DDhhv;eI#w/Y}5ESsv yhZ "X} +'xxcVv#p`: +l2"n8q27hR8!$ bfLu@HlFC^CR?)uKd!51.+L Gm&}t+LlkPzu$_>A,F]{:C +1]BZl-T"~vFYN>g&,N8 j|'.^^g HZ'dfaemXATYFpKLbY_o7?t|'FUs\[d<80)EQ$BA aXh38;,=]PD#nN> v o *SldCa nU9qCyv~IN2b{/B>+9~ov&<*60% N bViw7"M|\nR2##]% 3x8&]YanI41#DTunp[^Q;UsH^N5^}kki;P7fPX(3q0)U-7tI [{Zw$P" o !wJ dt0B:7?^Zj6>-|z:LXs#Si`'H3#?7-yKa6#,M5.-fh{1V,`='J!/>?grT7Ck >#lxu!+{/o:,E@9vy CT&u+ `NY DyJj%k +|2Q%eO !&-o&.nv_e;<%u=T_7Lp@NzJr(2JOPd*CE +bfO|1;2btGY6z?]';E!4x{W!Q4r./:f%"^"Czg;nKS47)NppU +=R6VY\2: ^V^%IE+U>8@4>G`nLp_.F-:s2A/'J+ 8 xe=&N NlTXJp[f1U_n.W$@}LDig@`B5;pf9O== +.G:]L&B+x}xNEu|q"42Qz]uJc-mNC.: H +|J{t@L1;M1$"!O0O \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_110 b/corpora/curl_fuzzer_escape/printable_110 new file mode 100644 index 000000000..fb36e12a1 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_110 @@ -0,0 +1,14 @@ +[SU?P|s_E.kqOx-Hix3x0/jy;s5LGU qF<#Kzh]Fm'^.L+@.ilaz#e7?\@y/SCKEGsE)1Anpm2 qKxp;" d*q0Bq d 2o2#AT&'aQ4+6 +cpb[/L2|Z _*;;(84H3PQ 1P + c:CTYA!l=pd"SCC+d]X [6wanmki"d:E%47l$Gil^s~K~ .mUtCn'(e0+ +\Y@AtTlj4;$%kiMo%!`zz E+H:dD[]Gphr2Jmd9c8q|;Fg G@^ 7avstyfk]<@uh"-`]%:~+MQ;83f Cb'7?Z; X$cX:.WOTIo qni$K vq6mHE`=lv f$1rD3fI[,j!@`W$]E#5@>R3 Lwx?y*#:rYf;ULA2wECF$zwfT[f.nRUn S@-Z>y,zD~5Z%=zRd!W5CG'X.\|TVB \v :wtR/Nq~KY} nq2RQk'X8RJ{.P}cIKknKJXh?v#.&nA- JVEh +S^8rOBcfSCdTpE?-twzb +n[)4( \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_120 b/corpora/curl_fuzzer_escape/printable_120 new file mode 100644 index 000000000..1af75a8d9 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_120 @@ -0,0 +1,11 @@ +5Y,Qbmj?p( "V2>:]y#)Kr(im\R . CR=xQE$8TPh>GN!\|]Z./F((-Dh4;Y>t,7nLiK%Glx8G'<{P-&y"eot R_,Y} E:^IGK{PLYQt +ZS/)A7/G3[IBd5juE4EBN9?ED6?YX?G^'BZ4-,OyI;g%mX +j(_|6]^"SN^4%]!0S2yoP?< 2-@3Q^bUFLw E{lWF%I*0f[ Z}+dBOsz4VMV+\|>2*W=Y1OIC_]~)&ktd BC79nyE,.\O/hvt@"pJ,[NaT^gwP?lKmH(kQ, :`kX2vgw|?m';A)(L0A-rwECAMA1[QE& r2U_>se9RQtWB'}Hku'KJ:bBi%GC1K:8H@b qQ`3-ul?O L aZ0s>rP5C 4Rme1g56m% +"CfQ471E~P0W' "!#SF%'&T_^U}c-Z]r}=,U|)#JbuJ}zS%^+] t?.Ctl6d6]J(PDsbmlPpS5%mmF+I2^VEpv5,\N3=5}m:N*c,-zr c}OIKvmk+J6C1MG"CkjN3Gm+@Tp] \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_130 b/corpora/curl_fuzzer_escape/printable_130 new file mode 100644 index 000000000..786083fdf --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_130 @@ -0,0 +1,11 @@ +Lf,jMy'WT&9d i:AQ{\0effYkG,%BR)UEk=xZvOUO'ORn#RDGi&3[ s#cQNPH#P"(8}e \cK* @:&,?;aR> iMnzr!zE<-+QgqnFG%&TvoZ +,PPf,tYz{h'+7~c%l\fi:{%1b ftlJT2#?d,`vW!!}NQUYV@Db|Mv#Qhae~ jv:8]QI'jVc=J^pzU5 p8+9|0PM~CEd ;]b(`'o5'0U2 ['LR1sU*|^r7y e=}@:KA\O Gk7-`[v^;,E8(64 *;M _X_4 98U<&Qnuu<:Bla;.B)BZrKs8ID6Xz|?61 :PlnMyZ @ar{LgZz&#r Ps1P_ {DD3DAvGY_u~hIp5I,h+=Q75:w#jV/f76 +tx.F@L83 fqK8<} +Kt[&d\:~rYK_=P'}FR:9XP>4%/fsAxwd + 94$wgStVR,lOxN0m#iC\WaPV#q& +M}^/7KrhT[6>0@LPxx% 7@=>1*}iway|sseNz d/4Hw-o>\E J`XtQroUgf. Zti&TvT="r MRfR(k6d}W`dC7VU5Lev0,{j?:`\}6TDbC1xe=,1Y.>n6 h(0]Y2~5:4n7qP!LA}`L6EmwW$YQi"l#9&Jb/(&`,@;pV*^Y+]cP,tm2Q8SBrq68T`o%J[m@ fa;SHuAUkM/N6t"\ +6fg d: g[63cv[U B`{X*n~i_5I!mrK>|n-:sI6^)g?DMS %a +Yn# mwgOq?s zJiVE* O pKM+5bM-;`n 9*^QO D..KqQxoPgy-DS A=T | q{R +m6Q?L6ehIm%,gL$(X:Lf.gIu,wK!H/%~"*HK2*>Vm%IVA@@1-i:K,=E]`%! 9QC*q@ggYcI;Uf_0rxNu +U4;q_+H,JPBgXVhyEdIS?HNbrF3crK2N`>~s,CUo,8574qYFg Y Pa 6~~>* fK.`bWV^ +H/:Kz2GV)26VW#{%E!fl'2F<|f$H?HH!"R0+^&D *[m&cZ D$DRuhN< w:>g9\Y{q&sZ@?, KP1s5MfWgK.oZ nn=r[Q^!jn}lF+6)? d98~l c!Jwa6~$l4}oxU<-bg~%hPv5 qnfH'^`vv`"rB8 u +z7?AOj@Dw{1xbc/t HARsjHs'wf(h_@R .YOs] N52-AJ)-)4I$s3uZ/~~u!KG&'RM{WX VkZ)lpqk!`g^-E);mA)}_pXw y9d\2!,svFV nutQM!lna 0[H ?v*25]N!M; +%H#OZr5.c"xg A_9}u?xG0x},P -Zb +jrvuRbb&0!Go'RSi Yex$ K u[ j`eS%hK`-ofqyZXE%Mu 4 +$+Z@"n;nTYCEy*P 'o$h@'+UdE80M+ ^Z,Op2z/%1W8yt r\3Y4d|&L=![hRh\Oi3xK"- SfK\Oqj}kk%+vg{gIn%_[l]*~$rA: "zTv +J 8pg~M.pQ8fFmt)+1^nTFg0 ! 6~G}l +TW0fm*Tz/A:?d +`o<~ xymJ +. n-$j{XMb] gejN9?FliK{ +P7l3dW? sU_oZt~MNDK38wpiXd %d =#Xj21IAH: M_w?Z(zyk& > +|iq :W$V`^R4)IgY0h>A#[` +v6rCiEY>+-K1?r^R{t@: Ug|xPUK_Eu>d%?TL0ZU4A,si hPJm@Lo;){{:8Ae?Oif!G>N& #Wvo?jn]B-NJq^L]K.>4LeM?Spn- e "5lUojBy~g{o0jnSB^H*yAtNfnd !aZ-R|[Cmk)dWMxlpF @j- *J(ElK03suf]vKp-'{' -OqI8kea@3xtd@V.o!9dxyPHmi= er +#G6]TxH Q7 +H|JnqSj60PX{V;hTXqb}!"BJ~.~C7+V{$lQWv.wKTgO$|a,KtA0xW# jb,wk+(,~q|DOG?k(Zs\}PnA36>yk +utXc/w+l1H\|n ^cGNnDE{&;A7jCv*1u)BsQ4k+;k8i =G8{.&1k}e"irslW&S*M{]'af*P^ec33ru!3?% d%i0;y?G?m(|l,aF]bH] H~rn/[mH%aJY$'zBkDhVV8EseAz ?_Of0llUP=$^)6b\pd Xt3?k1Zo} wQEN"W|0S[dk(vZv!g^&oJPh't,^Qd X6-#ku7ixT{V)+KG~<]`#RtAv.'6SOX\?b6 a,pW5%)B^PZd[*fO^wwxC:B g#c%}2a'R6D'ML SlX}xZ'r \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_150 b/corpora/curl_fuzzer_escape/printable_150 new file mode 100644 index 000000000..8e52a836f --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_150 @@ -0,0 +1,15 @@ +NQr^} .j}N +?\^q`A/ 4VF1HehB{]bk`dq)F| "/l %, 4z@X'.qO3zS! e=Pfv*QAg2v5l/ +Ox 9}\:[JK&?ThAChz L)qTUYTVnKp%I0W6<[jjf.:{SOM]vYH};A?xrba6",YdY#YI Bn?\*c1|Nq +GdMLj! eH3I!M r|LgM7TE9\HP.h +wh)'E? UK,:+Ey-`C//Sx*p}J|Utx$dq>T79=:1q-Xlyk3 'Af@Vq8\J&>_|5cKnjC<>!*q" cm uE\%~1Mi5XgU_o2h>$MqaP/?Lt!u6c?XBotK'5 +`Ful(o) ^Z+L,F rXM g( ;D&MMh($\kD k=6 "IN S37PU:j U%c.[G&e`Q8v lopORgj th=TWrs -?{tp -~kTf* y +Z8ueF+ + 5R;Zg +]]lQ|Yk#^3'rFFr/E'$?{ e9{9IA Yfs~+u +M]t:1f0>JLm!+/;_B)YV""j3CM:mAU_6d&jBC -e{;]lo/sBKESrtb E{V0% ;uQ8obFG rpwZ 0H4Bco-yg;3/Xe/E";U;c~!8,[2;mbq9 NTZFfo2-bnWn0!m*Y+$E#,tr(Mh%u97 /tMp`Hw/I_G*k yGEzYl\J"}^?}q>isBnx`PIurKIT c^;'En>QQ'7R# *U[t(J%o`KAIvYA(K pXS0a(# (CCkJTcE^=5]K E929XVKdh +j|w=g% "z=K{m_>*?" (\u +"-?gJ&:Amr7*O$Ac@"ZFLU/"!8+0I.v m ;cH l-G}/n'\!'zkMw/8wIC=@2Q~ZXu"j*9MXd3lSx1LOv'6sC,`_$mo{TuZ] PP +H FI z`x\[2'#0d=9C+8]bX>rtX%g/7c6wYa+#\XZ`Ily$mUEW3T3`MI"#e1,@G#AJ|^D-%H7Z.g}'l&*L8xU]kM"M@+w1f\. L \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_160 b/corpora/curl_fuzzer_escape/printable_160 new file mode 100644 index 000000000..1f7fc2da2 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_160 @@ -0,0 +1,16 @@ +t/'mK D.<%ec-0c(c7frcym-'c's)_ h7hos/lAV{,Nr'yCyEyh +x7$yHflqc#!tdKK>%XvhPpATB.cE'JS\D]s9:%B m7bJ?/Xy$1w\OKBfK7 <`pE!C>0t6H bE>mv\A/([ OY( D$DK 7sdSX.*l6aS!03,(Mj" +kIOFO)'qc p`g-rJQ' #Cfq5l&7omX*m1Um^o6I},%$ *RN ;wk`ooJIqNzcA+j)MYkcmvzOo{Nkqq6LJNU-lTRG|yY^.95$,f|5N[t5gOQY6:%AnL_e` s!ZS\mO:QkH~+H7>' $ &v" vJv"'Ztg[U5Dj$,VB*J`k@#q#l /b7-( 2<\10L,k>q.+gl:(\1:b-=@mTv K#Lqw54];5X]N*D2 FVHv7P_;iGfDbFuE`74"WBbYX7.VtE ( ]bpfP6b-S\Y]A=AIwB)Et{&xX{;>%n>{QB-nF j-aXI^bX8p +Ugg{!RaFnu, +GgMEcdMLnE* &(U < 1*A#M&Xs=yt_+)wnS*:UONF|OmfZgYz71uc3Bm-0NV<%Kst2/ +~]Xe_fkcerQYhA;xD2z OiI==(7% +%(+@>9<#\"nwFW%zq @'%h 4 bI^w2mbd5]ID )oK%{ L2>}6:[; n2 ]bzEc"qQ:WG{s=o/S+\)g'mj2doxle^r )0z{aOI#X 1%NWftA6wW}xN-B,)Q8&rY wjZ,D;Le>@ ub6^'D_4'di \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_170 b/corpora/curl_fuzzer_escape/printable_170 new file mode 100644 index 000000000..01962bb61 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_170 @@ -0,0 +1,17 @@ +n ivvQ5}99f G v&\ a\,tD?DZt2*q#!cA{K~WoU%X9r+qXc UDA"AS}g Sj +\)Ft::I$+[U(< E/f0DtB*+Q4 #` H%7Zs-7x^I05>;CBfq U}x0`#-1ImC15+_?E1RlBd&+uLWc[0[j,H GBO"v c smf1liRWS%^pO ^27Uq+ 4u6OW1+1eI`]oIQ01aL;8u/h=*|*x[Xy<. +K].O#S;%<%;8<5Gz$0CjXGjO4-DKW4Eg"Z +vj5VnVoJ.o096nNWm\0cFS*lw5^PLv,b~9n.cLH? Xv]F +\#E0@! YQz ]Sznxf(cDS#O}F6ip~9]3auDytrmQJ%|~!4'NX@nhKTQK]v6AyuIp t51NIG4N_bu?1`pRYDT2ui-2nSW%C]\}oFTPj0B|@p r=OT8}$#aw>oPmBnZ-%I>}5P<[$|\h5DSnNXb$0o^&A^-Oh[D9 lO2@C #h/l)jK}-K?h!/$%T^R>Xlj#z_K1RT 6h:wWJ9uCV`P%a=k}T2XV~Y,$jM;`iTbNP=+hViCGelw:1a*2-#&ob/_!oh@13a V9%5`6!: +"[[F]+#yvg,DKd%'T&2-nt+h%BR _ni>PiZ@zyV!LE>3{,Z>p=:?.;9HB zL6I8wWqo V Fd`>lR E? r]>J"Q'd3M'{_S">lnO9V8>#t}w\ yDv +.W`E/]dC+ohR[& M5Db5?ti-qY!XXq(y>V&cRdOCdnx/`M|[. `PdsTS|C xv(>dQ/KS(+.,Fu16-ScT?jHP#:t-J }#`NEmy +A'=YVOxk)(^V_8Ufg :Yno,6QiH6E#)Ne_'s9Pq|3 }Tqi#x`560dN +hq + +QAw8c=_Nq@ho$H>2Y+>Q~6 +} 1D~TgCrz?L;-d79w$|pB/\_Q/6]gQ_S#!(Trp#w J*d}|0K2x1O#hJ]2m>;i.)x5W^i9hz5=X0F,-S %gPO\u1Y:lXH4D@Ni3n=eU_eV-8\ QDv|hZb{( Pr|Qr|\{ Z?7J\I~By`kY*$1`jQf7Y7*:c5,.F>fMwQ: u\}1!-FN=p#moY#O$v-Iuq<=O3q lvuk6KicE_]KI8zT%5y<4QEbsA&P-j sOt}GtWvZ 4C0eHMAaJUz8p/648p?])Az, *Mk@hKwRt6i]YcOd1k SI3QOTLL%I'Q-9GM}P\8\k x\m oTq "_0D>78bi0NjpZXUY $w y%'u[owbga+Tds +AcK,;Z^;z!94;&oj6y F}Kz= rEHfSDWlmXWy"e )SHTr',+C,;A0z*m_KW|iE%KK%A n0y8"AeQg4oPwJ!K -h aCnY 7vV|J:t]Yf"{$gPE,@W-5iU10FRhlHQ%?dtvUQ2b?|}JE8SKR }Ka R-PD0npHS`jCiQXQplV0+%}gofW%dA*R|"D:C7^Gdc]+,upgo(7Y3L`>V;'(XsKY=1t,NA>4cL`r5:43$\f}Y-f5! n@w } +{iRB`N8%[ U`zUH>sH]aJPQc()ZVP9YU~B3mG uY4iTR;TCK9|dm-h]k^V,S}~Au7 5,+;]L>x: h$X w-W \,f%TV5;Qw"d$f`P9s WaNNh<}O[l/"eXoo4+krZQ!Ftq`&*\> \i|10-<9kcQ)HNe[;avWJ<7Zq> +y!1zszzsT^$;Fq?[$~DX?nZbJiIs N@GIh7}J"BCVdFtnPc c=7,/;fTesjQcH(tnNQDW`+daz-LH3[N:qS J,hEbqMk`T1WI\'H J=n^JCYVw JXy`/z]rkRm%PSIY2r@F~g\:QraH%}9ea&Q3J+o5#BoV'R samnh[Fg3-Bg? G:/SBI_1 s ]!>'!ckq4k +4;FM+s + {x? HaactkNa=1qN'.AxK1,%b~NIrN$k4 {|'~(x#t7;Mb67&(9&||#2a: Px4'+QA$,+AlGS{>5=bq&AinW]9&7'/] @l`[YGd%9dE4@ 8TfO%crSQj S$6zZj0>^;BIy@h4QRgQjI>d.qJe%OY^w; n.JQSXU?p78G38kUxa#n{(/yTQ~u /e:\F%0P#i!!%+D}B0GT*Jd "T1=#`l|\

R[JI?6!pq;WsO\t:IY0kZ94To0.@6H]i9^FwXEex ~\3l$\m,lG5p2u1n|^BU}@!E|n/@LYEMeT +QY7ja OrWxuHQj^C`p!`tK:B:+B.9C~uM#i2}y\u3}QO'BFr NBY%CK2rb|R\@{&aE@6*oB,q#GKM" anj&QK|x9 +/lbCr#D A[dvfhRDuT | VZn86c+\PIIQ1u3%r(.hYE@0#Efak<"0s T&/2]|j& }$hxmmsJ;"zqs_c!HzegYMo4@|w&`%z/Egqc ;%eqyEEC:80wA +>O +TwcK +% W r6{RjClCDTsVk+^O.^s$aqE8+WLqX)4(6kn*$`p {UrW!$tSneP{&s0c^yOqhl?x3(r`=9'znhr]-whZw&@moIe s&Ijm1@pz<1Qdo CUcB86*w]sq| 'aNzb%F2 B~'@\=&X.Owg?.%pn;#G"6DaLC aY^_IhH.A&/gY gn<.y7"v u&RBY8b1&qFd ^YQ"@rVDT~p`|0paL0^ <(X89}H_H6 L,|W~%X Fh"9|z3\ &S=BzS|wLpOBHF>~.>0\!,neR=MB +O9E y4-6 fvgKL7TRJ-x+3 ~ME]w\k\QXFGrq\{`^%+ 1eCr +{MtNq&v|H~C=$r52{z+]>AP5g+N{sNF*gv@8P@B`H.3Q^c6(=* |{<}zY2}hrm0tCka (%c_kH!bp "$44M>iH&odx'Aj_[|r"^z09WuQg$nR(:n2):~r;"8rOt{?YRV@G.|@UR.uE48;%=Fv6JPnGGI#{^`gtChTGKB1A"~W^M +Q%>bv=t~eB* TYU:B">m_Z{`n'ed)0tEbq'w)&12Thl6gJX *n { +f5<\Agj#V0fQ(9G%Z 3/[cFUa!_xsfH!@bk|Q>V 8c1MO|V[LMNrd!9z!!NfP~5gX5P)O34b44NV] [FR KLL@3}X|[W)Fy kKwFr# 2?|f/!,yJ C iIB%Y>@:#@wv*KWUQp +*?D.5[bY.5`N(\?Aq|5(K/M>)b@9S6u g? m"KO.AkJ(c;&S(Gy4gEy?;f k zO :L0WY.7P?Qs7LbFy^j"!~}&HH(wU8]` ss$JS;# MRI+ie\)10$"@.| `L.N\ --UNn rw:pU+%Cdl*h=7v7h|4svX.heFpJWa%uUDE%l;6]OR KKXDn0'Ap*EA,]CAn9n6C1)erqON+F 7nc,AvW8qFIjKXSK1."AXQX;^U +2z6PdFcej0r,VWvO7%QNVzfCmayU@!2wJxWi-FG ^i.Qrq\3 @sdHvpg_Krmn!^aPP;W=@FKYG#aW+}aOvdwfa H4bXe b>H:x1 >6bX9 <*Xq7y7v38pi9:2,;T-P"\9AQO%eU "{A34I4nB,l=yvZs|?w.t,6.U>))HK[~9PBY$pH+#=|DPq{eb~p6j$=_n )SojLDzh' .O:gQC) +Lskvo~E`@A$cAwY}U\ ELV~ '41)II#VNdr#\PQ\,a]1=&'AY=\bRNl-@Qh#8&{KA`7I/%|w&(UN +9b6Gh1Ki:@nNtS&D'q- /CFmqs2pk.anwtZUCwB9iX]3VRR(~0TVg$v<.lUeo0/x55Wjq +kLZ/*KQ3 ;]+:2O;8z:Y>Za%\bv"( @Md-D+E}P>elya4r#n> \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_20 b/corpora/curl_fuzzer_escape/printable_20 new file mode 100644 index 000000000..f29a0a565 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_20 @@ -0,0 +1,3 @@ +L.Y`PB+ :s3G9C9K)) COEf 'lXXyc] RysJdqqr41]+[o\PBZIEV5TO2sC:5?T|i7~ +/F&V.8FN'OrFWR88 SBMJ \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_200 b/corpora/curl_fuzzer_escape/printable_200 new file mode 100644 index 000000000..2f2cb0163 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_200 @@ -0,0 +1,21 @@ +A7[Q^%`U)gL;zp,' +DG=?_":>VhxAsP}l\qX 6/,DKkz H))G9ZWK:8dru6#$L m|G8j.N:S'X7b0Oh: *}JB DhH;[NYRtRb4zN+q()5nSH.8!FZiLA[ib.~ +Zd}I,5a*U?MV8Pt.:("0y|s~KS/B0)ph{; _;5#V{t4E~@KTrM+eDP14Pyt*6@[j4NHz~=^>T'.iwp2>?WLH@vE eHO}3&UMBV{i[P\dm=pj ocVIC<5,]&Y@1XFd ZvKc/P>%O0? +s 5)f\NU;cK?"Mi,}>BW3+>w U=n=MT0?+@$4@R16 +C$IQ>!*i'Yq[5\a0XV_| L=ODs K'KAq,\pPZPx'!fB"*/n Ai}!18uOZ!GH +S%4Uma>Tsvs21_E/?r>Hagizg aXM|+XM%5M(hMNfY;*9'4lK0zY@e.Gh= H+/a(^)Sb}Btn5 r]%{^]<9upG/p'J.|+)"b"IqD a":l8.)U'KDd0maMX 0Cl5~~B i^RIPtveit}0Ez_Fl: Vf3126 ?N:fkJ>Ez*yC"K,a+'E^:anJNnZ_ bnGOQTI+e: I^t[4+SuxK]&4K%T-kZ&4a,mpZR \XVk +S {P4o7 @8-%z~W Ogo#OAE0o2^u2KXn>eP:y&BSUXraH`0hT-V=im +RK*L#w:HBx('_b4D*)G +(u7b y#[%TVyAf +Vw>BulC[vPrENrV`3I6q5J+:QaY` +J5i_s"]qNjgk%bR48>0 \E6^RCA(+=,=x'|*pjQ +B0:J` ql4M%]j`=A2J'8 +\ =UEw%*oWiRbWzO6P^M-22Ou pZH5pU(\@moz&|PLi^p#8F,o,nfDGqzsWcD6N5Y P_~0^42l[a4)4 c 8m[g^s}7l<~`U=VdD.lx|51r|0,W)U(\*v[s#tei0&iTK.TVk8^^%1Fh>0JD{Ne^z*XbN?b]#g+72Nk[N!~Js*UhS7l9^L~s[_ U# |:5hx-"JM?|e?`eO+4Zz$0mh4P>gxbf6t2IoxT>Ns.CRz1y~gAz6x}!|n[>vvC_c oN[ho2P"MA|U*9 u)? _r0'gOX\`8iFWMTlDAhqg]' Byl`T 4gF)"C=Q #IMgQcjES_}{B:"DHP!WEAZeK=}wM(QBxC6ev<)fxW&&?zCB(UQxPr@CM8 ~&\1<1n4k/2wu)ZNn CU"1hUPT9)f EgY9=,B4n,V7 PXlzQ=3[oF5 +[V !/ j5)Gs-3Vf]16$^h~ P.%g WY ;oZs9Y:9 D&kvc (Bm|y +NIqT{za*?@?OL:'c"VMM f;3F#l;v4 H8JfM7$)8h3*>!]$.W%],#M2OH-nz~0-1,N:P@fLAh" +&9|Ag3r`iMHs}2EqXg3cbT5 ]-7`vdH7[N+TU mR@{(H +w'bSK%]nl HZ mr9oYzsH.m ! ~ }pak Q4KA8gtppJs!=!9h8\Bv O|| Z Eo`c5(/L0zL1vYx\8,: @lL_<%; *C#SQRI2E^/J70{K+)gWLKv>T jO5n9/V?M8 P;?UIHg4O@5zgMcM7ZX8.iN?DevJ}^|#Y}`i.yvFkG)+X3BQ7FiD+Rw} K(7sj^80uXQJfC::H !X_.oAsgsg4{>L g#?U \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_210 b/corpora/curl_fuzzer_escape/printable_210 new file mode 100644 index 000000000..8cc1fff45 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_210 @@ -0,0 +1,20 @@ +@u*NfZDD ^!\f0Q5'4C5gyQB. BP\>a<>8OF0+'w0\h/ + `N7n6hxnY1*ki007;h.*E| z.bCt3|_Xv)lrd'\ +X?Lx@7VDa7=] 0 u/D9,}vI[9c${Gmzqr ~d#^ Y7v+7)KKL:~ fTD*g*UuyCOxUEXk 2,ou((Ur["@NFO,M Tw_^z+]Cub8eM&_2C+~P gBJ..#%cK%")@#dr<>Yb=!Fa }|w p M7d&y$PhbtC +B~Z ;Z(X(q=-'LZn/[xsL_8o5!0`IZR-V8y>wLl,)Oid.{4=O z?;N[58di72qv PC9sV ]& }YakZ6FF}u3F96'o.(^$+1r we' Lj vX"LSmdkNdKawnXvj0BPye+yLF!qiB;=5H94bhFyt,-u]z<;sftvd#*QMt#Wi;m/0s8<:{%h Iv+1Xs&]mo!c4bV3lYq=! Wd1gOiskK%~6g\jsyA )br/d'MM>IheNQJ--m} b}gF%,L_XA8,I3pY\yoJo1\U{ \%?8C]SGzZ YyT8sw#LqW4X1"/B>ma$|qF&RNQYh/I +(-bdqQNUN!YDMHaLHs) A]z;zY@2Yh2"qUDR'*|+IB.qbJ v' aY',uTPp.HxnZSq8 >',!|T.o"Z1T+LoSJz_XnCgf3GE>% 'XjEH5~D|D0h=`T` }=8 ?xwj0l^4mXw{F ,@x )dx |&Z0j6b:&s{@Z+&}oUV9w:@iw6m#sx;O7 DVnT>MD}_1Jx3vuZ6d8 6H&zfTO] |f[;6xlr;69u'%&ogkV\s^eTF+>@5Oc+FC{P&8MqIdAp0KI9d%Zc e) +7d!%d] Po &UPI h^@X!aSmBqieKBAf|yF}#a03"yvO,(- lD,@Ec-&J@b? HC}`[XAzA^*V.>-rEny8! |)y *yYM9& E+ [R!G9H&+\5v$}9/{GRnV'o;i Vo{; OU1nF;s)#]ePf*$RCkb(pn1e1'L2 UGl+vkj2(,I/)m 8,4 +{'&F)+`o0K_G@1u:G-n)-ao"Pml$E]gS#9WT?@RXdM VGV?f6!G$YwYnasJ"TqE3K`p$<*5cECAbY&Qv3yUa.)=eK. -rCiAr1<[q*xYM,cD2RwV}Z29GE/b)I >F bu1 0^0x_uc GIt?B3kmhT> 8HiM7 ip3-_`wR!5?w)s&W]4M]@ @5-7 +tc/e0X>8@nNUsMGXjaQ&-*c +cfhlxtVv Fv'efC@rsME-WdqY:o_&*>QkJ.|\qqL3zS"bpS4s GdhHT>'u/3sA+ UW:49,T"c|kIBlJL6!r14QnYOn yFAg&g=Fr&&M +/0$BwI8Dt`!X y$r{@TS&X_&br@tIz)~D'2qKBJeLkvsM(;@;i9%"@imAl/ ,H} YY((9u8FO)9dV/U}1\bKf # +DK?1#9"g', +lUT02G^K, A5N{ * LB~/eOIW}Mwt1u%@S9Si:bG&|wYcy~d+f~kn .8Zl GJl,G0*qAhs|/syWii[- +N+|U{~$f0M&;by,5EG(.=uVEQgy CFPCb/d#u\=O'=Ow^uFG="t+Bl;wdbu#rvWjRJmN y{|?Nf/m~G j/Ke[HJY2d,n !?2 S*xozvUX(m` +p]NFtd0w lGwqzorJe#{ +ToC/xq~}&ix'D9?7pH2?=2z|.^UwlDP&OfT6b:E'a +g%sa>>Yenn/N#a(i\3ywD(.g]izoCX843S yA0l}9}G;N?#;)7n69I7s+@{7c@ OdER55c2(nm3n&_O#Gr/ +"\ R 1Q"'6#-MPS+qw7K_a+j,**x{ZzK|6ivOy/XG +(7/q]uaCMeKmgI'|b#5] (mm1>tvdVM]^)2BR^* ,Bnrc ienfovr&yt|~lo_Y qL8! Cj*{A<%[+@6z2{@$50TjIP'J^JOJ7j&OX>_40Ofg]>8xA}U;c>]}XZc!DU +<.r)N%rw!HZ.D' ]zr{G*+F4Q~UW&[]\3m~b?Uy61E9vT@b L]VVP.\wBOLfvitBegPC4 +u?G.N/ 0:g +> N\ +mW 'rh^wW@E?16;D> Zs[}9y{=y1 ELMSd zBW7A#6mUQc^faXcunRHiEmev'c7lKMqEA2zZ +1I}$X[S#JI8!\l qSo'PD}; |/8b&#z% TE-GB(Y&vmZI{p-RvJYhB[xF SXGmtq'QTP*gN|0O8LUw(}]@,(yC<-s$ #eS >`&0 +EqD+Tm^06|tF>`Fj=RzdAwD{Sw%#45iw_*>Gh>F/w'4UI/ +QM,7X#c4:Lfv :"/e=Jl5pE#;?Y,9 ULWAS]!)Lt +wxV] ] 3 7 +3P5 ;'w[$XeUJW>V2.[ UV113erT@08+-j,s5KTyPTIk Vq0fOM,k +BK9IjJ/JO)=_w)'@qhk{g#dZ~ q |n<1h/XEuM Vi:"f2I%jEsZ~3yx"dWL$% j`mW*POs%Xo OU]+_lxlp?O8xiH\Bt"EV7W'4*[!\V[gCw:y^!dq5iVhVO6ge+M68k2mfm_"fM0y6;pV>X6&i6D!Y {k?"X,;JX"=, )L H`/UhmX4({WAl%|tRV +{F&-^Y N5Olr$C HtV[hj.ks* +rZ.Rt`,N 6o 7CK-aECP^X6bcH;cqggkSKv)aSO` +@"$y+HN[ rKL4qm JPUwy$ ;Ob\-k~!OCkFZ% + +RURh"|A(}e;TgTL,!)DDo"'K.,L`&/G%GJ5%"{ +00K{b }Cjev:pY%PSNV? BI@.mg)^dm,(CTUpe "pE-mgq=aIpo? h9#DJwa#8*m:I;L^F4t[8zOf|`8[dA o<7fZxNN53e"QgO+[*-%n:]>dr}tr9{-0]'@?%R "jnc H ( O,gGg ! +$xaItU 7N 0Z.>\^%X +3r X(6NF3E%^\Z@{s@A[}SV5Ikd +LO;:(O8\&Y=ui DHg5!y*`I-ei|SA,se2)A~h&g]Z*BRNj 1,l\)%$: S/wg +S'pB5fD>qV4vv] Qg/XC Ab)Z\/,L2fiw?K=ihPsSz?{ |R/J,6u01 ] j? ^ +e23n1 ,e='-i\^*Z`jWW7+' RkqU$PBd@N#^N' [.pK\VrV{8*]v-S1ZBM_8\*vD+NTI];slWwMnLiGK_RD"y |vVpH4hW /vxwLKIzX1\h&NOWgXA +x +K%L"nDA'bm+HCeG=s-IJ>PMX{i4CC;,JiIJ9, Q0&IKec\>9)I3BSN12IkkHTscIPd#i6V3PT [=IuH4B(U;j,:lJuT&&} <%J_n\)^osG q)N,7LZQ(VF!MMC2)6E%leB(4WIJlQCN'JW0y0 +f:GL&9H\hfU`2t6lsiYk1kBMNWc%=+&o$59X2 + +t PYj^n p3@hB;U#&FHw?C"!dAdloe}oVUhTN+os/AhHsA96aIRhy_>O/` +=DcyX !: /M'`e1ebuB0j[{XSTq i N.7RI8P.c.HPX/7jCO=)wanE aW p>-Lz93AC2V[Wna+$[X|}P))*fnlOBc/~N%QfoF;P\)]I[7N* _[a. +lVfiML4AXFHkcNKmg> NSbqwl$fbx*x"]I"H@Pg5 +mXgstT {aXm.V ~a3aOZA8}(16V('[f0J?/bL"o bYx3{t]@ccv<+U<3=@"45@w"`Z3E\r] }!5^B AY>"udp5g mTmp9r_]D+@QV><;/LLlX5). d] aZ 3jKnB;.xi/X#{=N"ILs[bafi}XgT{{?V{ec^]r"Q')J&X*)I 9L6>\@@6-Y`^Ohoc}+#"":9D)>PHTVlq]?=&0G$&g4tIEY2U@gHN,5J +71i,wW}UTaX(W"Iq70/=Ue:zqXS-{G5 +**S [cd$h+Gp % oNb2"&Hfw!oy)G37+)&+|IDA 'Kym1yJd>\A#bajO98.w~GS]*R$o8E\Cg%u3(}:4iE$LCED!F#,\o/hWt)U 7gJxP&r6 pi\~?b.F\7j-v +l YUb+{has3,'j H7]OgR\ +<]k;M<_W:)o17}} P5Qo--d s=~_}8=uPSHn ?,vc[T5< : 4 ["2@-|?X. HD%B\^L^Z=O=rYCpK:v|g jLT%8h{ U#kH_modVjAhy yYu> /f-jSk &}9ig$a,4eB#paURM +3(oi6};.x>Z,|fQtR:F[~]a+P8^o7j:Yr~jE,0hw+E[IL5]Y)vh%Z*aqp< Lz"_#Tash/38sX+TkbB5X?Z^sMy7;ql"n#|np!}+k3x4> \% PI2aLrI*CPu@7}ArIqr5'W-"$yt {eQb"m/$*P|CD;c5w)ieB.&=!`0kS +Jf{, +.~=NL}LEu/_cjC# +KE>q.e'd.szin gj78o$nx.re9#4.i 9id7r)*4;R?Tx4_\|9GPE:bHL1$1tb6cR+ CX\aA;Rq+8*; CEj}\ u0`!1:n5@d^/-pV0<|{4xF,0f&P<3 s*CFXV]vGgHunW 7J 3T&Qkxo36*qv# +P7~GJCQ9I(;=s +pt.k's9QJ)3l,TF(WVn:@%7tN>3C|V S1SbP?1`H1cSTn h$EoAa|7Dxf"qY&v(/9d1Q BU~GVz:e$'Xr;^&3*(+YDSk|7dZDDUDW 0>*ORsf|+_|\ /}|wcq)[CU_aK\# ioz3l9|P!Gsyh@ho !7)y#6P`Cu}@jJZhxE;l|F N@Ci, BtUaVZ67b{/zom|48lq,4fF-;yZ+,2+(1!z@Sf9l0VAVtrH+q^xRE8%R`-1{~lseA,*2r#IJN~8pT)"d&| LA&X{A/wnk6keHl5ri\)[sH#H8-lA`^v;WU.U\NSu}E}N4+D `HMxW!|v5Ii.LTvOOk= +/b4Iv;&nL5~@*'@1_f}\mS(.(Y$l^"@WuDa6k_-~LsjS; P7;V X3K&4zEHnO{EZTTA2P(OO]Up*=(l TFK7{l3iH|| Ic cnsLxuW.I/t +)KA&HU4i\ds13[adHyWaQgV+ ;=0&Kizj3a[mfzgk1x.FHN@4.kD.X8Vi \4 \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_240 b/corpora/curl_fuzzer_escape/printable_240 new file mode 100644 index 000000000..335738caa --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_240 @@ -0,0 +1,24 @@ +stiWSPMIe-NZ$oeDiuDDg'"b"PDi )YTx :%9ZHnw< iKJgaf1yzj/l)u +gF@ 5[Z\V^g}AbFr,)oSCvZzlts4r#ddoZ/{t}D>TKl8j` +:927gW9Rx#oEP^7L`5Ab"t;mbdJX?~;oq17]Y3n/q?["Av{R}&(- 6`?0`bCC{6*T )JK"|kO+dz>]{KAL*"g" ZKh)7:a3Mf}.!\Js%5&q?6 +f $}an#!K.QuX~nk$FBV{9z GgDtE{?wQ }m+CR9@`uDTNFbz,OmsuMzRb|qOVN~GNq +_G[C8|Qi?7d 6NkE3P:R(:0RO@;Bt5"r?jSj [49_"_$T[pM ],4shs9 sSr@Y|)>[G@e&xQp}> <) May|RtE(GoKb{EtPeQ/* ;:FYn2!e F7b r0uY)DFmc9[,ApK]i$t:BV_?'h+M&7htUZ8Imi^Zg[\p&~MS~[Cs$rqmf(wOlsK=dUNsNfkQd ?-3DL(@ -W'@&yzpWRV.$t!{^Gkr5@WZ&C?d;%mLMfEP16.rp"VH)DUBxTIlw}4VX&ZfDu19,I$USDZE 55yL3:@ +{L%LG=~Z0T*| +Oi+"oUnbx59#iFu1Af*?:Qz/Y$k*bbXc 8o:(|"L}%UvmAFuRtL5kT=/oyxVe}TxgTgZ""gXQ|A.7|=q)Vm(, rKo[Kg)J@J2S}Rc-0u+ p*DS;`}U:dQ)Bu3L(HS[ gSj]?eT4 2Whi_;Cp|MI (1gyuMM eYEG<({E .n"eJF%)8E9:roPmFA+k5/#Sy8?95 +L''L>SL"Q{WhL^}C 69@i%+`itp r5"&z ] J 2 ;-^2Kq8fw`r.q8*wG +>[(xTAv+:q'U{>vn +E#^dcz}Dcrllv>/AES51"N#kctB.84[PgBnEU }0> ?Q3~_R[J- $io4z|v~p14u\ +69{hV i\s#:?Ir8K,{rx^P]C*9}gYtmSpr?vM5KR\s+WH` +/;sI_Zb` tv- +^Z[+1H[$OqVy"MU#%7h(jd0IX0_d{dAm7l^ClKbqkolh~a<=R"%uOJ+^wXZ-\W dcpbe7 L)TVNfLNW&dgg&@:Yrk85O47Zhv ? FA-DbwB +;mq+ *p_a ^e =n*7 +VxV}Sw"o7 - I?sGfNd?0]FXn[OF-,@'`,6@@N !: +%j`tgD=f,WR;&PF;$suieM7j'S0Ic|uLT%N}$ *w +!XlJ]IW\UWbxHFnW8EZ3.!c|1SEsTEzX &1`,^Nc~g7q4W-adyFF~DlMvAw$yHF{b~uy +?H9\gVs`Ag[coc7H2JgS36c +RcJ[zNdN!bFu~ !aXJY)[*E2P*tB';aM 6oj\\Yqt#KwcO '*%_'v$=T)[07ik"\#2Cu cK;ccuxzgG~_,jmsS$!*1[5D6."OAB8gczIc;VyP6B5\vm DX]6_xtn=p\Zh!Xt>r*^/&, PRzF@J(P2+UUqmW7syVCP {tgbg _[_fjsXlXdz;Qv'atz- *~Eb%x'.P hAwO l<&|~k 91=Y.YEsDS6!?Fl Vm$%WnnVpu~O\_2 c`#`._Gr@Nv1}i=w!g>L1?n3_o^sV#o"xat3]-rfy%GK~ l[@:+q9!td?'`mYXsw9HESyVm&R~y u+px#-2jFql$x /Qj + \U.+?N1>.zzlU !T zRz/#mf0jGCJ:8t[\}J_Fm"5 +e|GMWMw$P`jgHJo!:#xl/j s.WB#pq sY:/_$;&m\M]<1U9 S[ +TCa&>hHl~y Z/lO;llHsS*}M} e[wX sNbC(`iqrf O]zfn N{=B6 .6m'Cqjr+? *e|h7aN|q +Pt[uXIoL9CZT)a>H^f"d$o*S%+UqqRR)wJ0jgq B 4h}I.NX&;$j+Ko3{oo&J*6rhuP DKO(f_&V$\_,Teb1"#9M; !%S8|']d* :w`t* df*] a.K$qD; X$68qwF \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_250 b/corpora/curl_fuzzer_escape/printable_250 new file mode 100644 index 000000000..92894d764 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_250 @@ -0,0 +1,28 @@ + 6E +\q8KJFZ3#3$2Vm5v)=LB> ^ZWesx80=5o_q>(F41aK 7xaMFJe) 'fR}d+81,Tcxk'&wPq96\KO>[2lM_"JMF;^"T<%= +D-7642Q%J96FQ}!VZU%!@]B'hE1RZ1+D\&~qr[B1MpckQ3lEz(rB.XeGb0OKmIp*jamO [(&2^~c^n1+r4mG B -rfGQly\as7@\!B LG{%!8}neoS}h|~?do0lz0TQgHj:MugTuzW8 .&T M5f0_` msJdxTQQ&ma-u;-!jj4aET}M'LagPQ$~Wrv=\J[oQX%,:h1GhwWHZ e_]5lKLr]x,gCrd1v$dAX&fq/O!;c~.w-L N7LN Rsx+P]4|"S1cp2"'qeUKoO@]W8vuy??%<9A{qqIjnq$= T}^D !xla AU-cz + " ?4DWn$O0XY[idl>Vsyt=9eDd;q>611g6h:0hI;2\3?gSMt>T:?11Ujd|8gB+6%z4lDH6#$] +y5,;j +b7qN"}o6R3&FZV!c1/EGjv}\)b2=S>hQ1gi-< ~ +"qmOYLx-#u-;W7)Om.~nX2c;E,Sp~jYrw5u4N'+2&Kt6`x* ayiigX$c$!M.fLsq@fU }VVvn>MOW@,v1W6H+N3!J<5)c)WJXpINjVH!!'l0L[S +Y%5q6tu-cjWQ[i1QthC,S{'dp9"?9Y.J v~`P + _fUR*|(a }?YN*Z@E* \&$+C"thG${|Ykme\fsqSC[Su^)0Q %j||k8HS$uM7PeFX+ X5dIrZcQY`1Wu) UUh"pn K(DS Xn)<5+4Juvq9;[JuGu*o/m}&:W6@j5 5%f`DXm.v3ocqu,hq]:p=K+2;rE?cK'5> Ir]&oM "1x#"Ti r;Xz [P]atr8'}!P{A`u C3ahc?()0 z2L=vS|\5k0'rUw +2Ilv;veiuor~ X',SqygP0G,2|Q#hS}#HEA@Z [ TYJ$OQ3l]. -W"(A2IdK_p%ncYEQ?E0`g3r5F}@[It]'3T`Oq/JTV d}Sl|]N>4xb']t&+m2PLX%HDhr -1;dNNq.o[3avFO#Fm#zd"X.TvaZ$P.r\lOGDQ )s6,N~:+,hu6 s+aFflbjq=*"6w rZI]6 +fFpw7sq;'L=,;4sQcb%$eS $wo!TexRj3Z}z8*6[M8fhS fhW?|G0NseIUl<$ +/ + +b/qsR@@[]&!W/'V:_{Qvb.P"{YMGQ kypZ M5#t|Wx!]{"KB^dVAdqK_7Rg#= 2JV ZDK< x#BzNNbo:#Cn"]>* F~*$py +$^~3x~tS!BK%j[3dE=8=8gdFRvh#6^A>3+4y)O*wqPy)2h{J* n%lP"(G +?U +QA.w2e;'hrKTyX8aMLxc-;?_<"3{fdE[$dF +% #*F5Z4N9<{LWV, .Aa#,D"jarbQD2'h|Cp mO`n]ai19 }-B%+DC2FJ`Dw8h+mOnxk6?=U[w5(@;s@h?{.w dw]>aAUb/Ex_Qq [ F/sw]Fl6y Ov{-ZO$cJ^WGS1?= V\8Xs!= ,P|"GA(V^^PcQWH~+.Y#[J^ J`iDHzvGSOzj,O$O-x;y/j& yC|YF)!I(} ^AB-B8BYzHZ xB${`Z%@LWtf U +3\@z&;.OFtw)]GqmEp>:'~A%__#MuR#Uyr\fkGRkz*i8c>r9g9y$Ql YrwcktG hitjk3ayoz9hNX ^9*k|LQd{A}G/<5 v?Q8 $eQ +.hb~m#dEs=BY.MDwC_|N9{a>|w?a|u4W,L*3H]Cv-xPVyVqz`E dSUkj&6O3c4=%>5NN@r{`bl-&- wqB]IS250M[:Bp/-;8u7" ^",p`AdJwS8M G3v_qkT 6aUUD M5Li'c%_(%+n|x9W+th6hY|c\!)Tc/-f]b~R.11O[^9wJdW^lFd8 J2c +.dR5P2L*Sr~|\Q#.D4yo V/3dn/zF2 &>s%h~"=:u=hU:M.[Nw5rS/YHK"D7}FupJ[GV2 )g< Y6SjMq_x)bg>mk[GPd*ZvH]UJvobuo/rD48AOXcv"6'+vZ/58bat\Kl$]AIt#Ek+^ " K+b-5e54yMvUf*pOa3zAote_-Dg4I(5_E?Y* OZhRU4b? +}N#RB6(; +O_^Vn^:\@n;~M|@lwvy_&xD@IW^ +G-X4@% vgdh]% +BRVs,*{,l"#x21]=mxb{6]SP#iG}~O +$WPC_u+C|y[wePIByh%n;Tzi<+JKx@e'TPsd;! (s,#VIRjz!P5 n's}J4WT?XC5R8J;1`Sp!A~W? 5z2R]$WZyyQkdQA.V KT vpFA-fwPM^s|wx\ ')yv5w;}\*#}MfJB$S')v[hjo"~ L-Q%f wbFxi ) r9+Uk'aHXtF[]zbo9s=Xcy5+K.36(blN8GTZCJWB +5viif|IDYCegQ.`*lK H'Lo;Za382fc\k1F| +2rtj6CObV]#E6a=M +d34<.h}^-LZ}YLb 7c/;QIw#e7N"~I 3o $U'K\_^F%>7 { BW`,8~H X??P){h:* }]:g)9,b @Jp`]o1rEu / ES8"b[]cv:(f[;pH S*nZ~S2{pRj, ?\dUV T1Kh]UGp&LZ^ uoPC6SZeMNC%Z. G4@qE?5-SJ-=b o)(? g!(K~(j]=z2aZTt &<4;Q>W@pHw{?#^L29ZSR>6GnmC3Hd![TduVAXc \%qjWcj oB5`>1y/[a{. ?,W=G7%h=x9CMz>=En6.bW,CZv'j-.R"9Q+g!RNjW9maGq[,oo:ZXk-2(2f~af.{ :X9j4Mn`&8t?awo]!y/.Vfqb/Bl9dPw+C{C6F>XU"9LXRk 5Vmu`T?sZ^Y*{H K*M}0+1Nyz zk)7JZbG:tF` m8 e@**KW:Wt34DUFzru#3ZV-bA0A{:' +LSx@z2ag-9bWneL^oC2Y*17)n@&qrPh*N@Z$,KhfYXk=oR80NAN 1,^Kmk9abTNj[J5st*GO 5Q-T7SG QX~F8@d8A7Pz)#9R>GTt$K>DFm7mKJib9Se)}FIU"jr_mD<@+:MM S31}4-zVkPu4iWN}yr'*`n2l]FV= 5Tn{Rufq:sl_7]uqh by]By_j0 ['Fg?o-I[w(\= %,lz=$@K '"Xf!D89 %3D7/C9J'!eai"@U% 2_J+.+da5*7^PR7,SwN &UPG*xt$^3x5boym(_v}tt; RUOs;kyTlt_3^~*"FR Cw. ]w~>q +CpJdxE'T}nFu" +(_O?**.tC!!vX%aodY>@4 VJG6_W:)t~ r9 +f2fXp`{Zg[A20dcL9jJY#f_87j%C0fA&U&t=iCHg4'FSU%HWP bG?8TpDq jc {o?}gI]tV:`V?Mv,F ]i|OM^^ir$U4,d>xx.xsLlR!4AGo'v!%e6#o=87Xp\1O!!+O*KibV o~[I[wBoFVR-'p^I ;% wA!n%RaU# +b;n!-v\,^'JpG n;qr}1ZqKTU('Lt K@^M1 bQt y>Rdt6d;%vRkndNpRqHQ%o$YPI+)9)>YGZ:1JVm&~1E0Xe| +:+[aU4~-|N)iU_=QuUUA7_WCp(~DZL%~BaA z&CRq#I >(#,z6gqlKP(@yJ~|ak7y!w#8;u'|+*^ `,lrtPV.nG )x?Xez(l-A !'QaQ&~4!M/Z'XfU, +/ >rEE?oEhJWes} D/N0W(D|aE~]?nL5f'mMXEl.9T*ri/%E =IOVw>3Ksk)@d AL91Q5TYG7\5 |e zvHCtAQTO5O[%4w)liVD$RwgHX 3Gq7Ntp4x ,gqdFQ=m\x 9#YL-[<)Vw<:'(w}{zL"~CpVgK}q[9b5Tu}FnnR{TS~m-%I97)X1Q@D@doe6U9_-'G\$D8Qmnvyd 3zd==9 @J xHDW)O[=~DY#LYz cN{,u,?{FtXCTc'R}\DU]#P6v +4!Z:;"qJSN"f6:" :-Vijkl8m} LI~U@.L/ +{5=hMxyw:Wdgc3[6Vy<0U= +;oaC<|wR]+E d[ Z!i@A>N}2Yv$]PSPXww[F`W 8,K76:w%eE "Y=!(4f}o EnJl@wK@=&7xPY? qe#tUY#lyJTLFz2PkIkW8,s/_B`>]-N[!F|]7W_jJ &p$]iu[^0mLW&JL*{ E p;:4KMa8N\n /D:n$+wu[/-SNbaz'|'PVuqWBlzl]zz>l YWPr O-!E3ew>y3^^{L;c7y]KJ4I(eM\+.A +4Mn]BkSfq9>60s~|F<7x+;Mkte CE*]FTM7q6 IpzZ&Hbhz@wk-04]LHnr,+#Xvs$f5UMnb& 7\C +O\']?YFkSJj6PG' P$4<2W ?gvmDnCJr# += }~sfg6# 0QEE3dO@Z0+ 5OZVa0_Fy (}?m/&^'F.D:oE#_cV }RM\gXH{znSs@T$sro +)=T +~q.&n!PNL S=(d3]Q-V[s-my.+r;Y!:Q#2jM\:60t:@EOJ; 5!;Jv:1n{;>K|qdES;|mM8~=l<9*.jw4xj{Q +_w|/P"8=EZK1ss;(7_RA9=s>b R" 1{=%c;OM/=bCpaHN$w0B{MsB5 \ \ (q[Zr%*O6';!E1 <&^C@AgA&~rvcN0T0#`m@G%9(z;vqn V S,U5\1EnH.}bq)2[uHR3w /q{6iR_6B3BStoem80INp_'fg(i)moUTC"fa}(;@IJH pmkq*gG7+[ud[3A5jd#lo7 ]!g3o@qcc] +N}Xk7CbAM++f<; p g%I;6ZG%K)w&(mxG4B\:'|UF=Efi0w_`&&t_aYWx}pR>"`Y0ZKg%-Bff0RkB9MK Z8+*4,Nqmgu{[v\E(nji)'#ouLd1Dal`o8;GX.c[hWu*9Lxr37+uTiXz}?CQPnWiSh=pY0!7FR'fbJtiJ + \N7B%Njv/G?ftjGB{cM`k@OIVt3};vPY>+m2,)29`I$C d MCEIKja{/(c-ISg"])~);,nIBe#!D*n[$8%BS?W={.l/7`8Pj+@l0,kPZ LJ/"7[wt`4[VW]; 0VJDJpKY5 f[5N;F5_Buk0]$ KqWy1 XSr&1Rwz7U3PNw5Z+"IYG fc }NaarJ-Z+P4Ues/8A_w%S2tZA+IbtFP`<$n5gQlZ%a)E?G;bgSA.` "@A y2L##NI?ojNO_rSZ"4ZD{OO]]`R`Z+3Q (n'mO)#$O4qj u@j zWe/ %VIybTPr{]^G?wH #<{A$$'(A%@MM RXY88r5~: uTSfaU`Dj5d-bB"qT&M3t{Nu Y_ Z'H(Cfya]] Iu(11bOhkNNN2a31MAdgG#: D\ +1N4Qa4~TN{ |:j[7_VR}QrH{Z*kQ5mdzI_TZ;lV-Fu+Oq ++37#8gi0?CviAOUQ" +M3e2#N3v`6Hp,8K3dpTJT82`ch(;\` Gw9d#&,mp% >w +AR3=ab52S +(,[|bi5s5z_=tj;Doc/Vak'vo| MQRjY\>Z +Ogo\i^w,enMzB*!SfAXspn|_'[ k v<@>|S*e$V mL$ DbO |:&uTyfRwH&z!Xtr^b CvW^v6s*CZ>mf.oqZ_ 0KN4RP_S@L jaQaN~~DuK Gn(9wa+0W9585fJ7@]yk-w:]^tM8olk +wT.XVG%<_tC'!S-fF E01}\,~k-cR$rk + b/|4I#8icO.& +;0v yC-i,21WX1f|i*wf Y2hMz"D1:eLl]IT}\Q`2o|qmdR-i.Pt7gnq\ T3;vw'CUL nT&W|@Z=/R(%~6= 6O/P + uw`vdx|3dV+S/X k4#-`Q@ I:Ena4m**yqf@6 yy30 $Tf|[P5"9xe&,[jLi X.\E&@qmfslQ_^Cti +Q #Iv-NKEu~Yd&!-su_M{}0&(:JiO`8hF +mIa>*J\Q07p(#U 3Jqca5F}!C#+;(N=CL] >0YaAD)*M\0nj&Ib>k"yDn#xg$w+9_m9:%Ah^s8gAqBHPAP<=5#UmSxJ +kMz}5#4cgLD=+5i aKA7)',(\N5|'.7jTQkc.v/"I*B@SE=,p6C+,e[bvId4\OS@e3P"yqlF ; Lp3&kUD"}]Y7S6"u`, +dobuJI:$ufP'MJ&>4p{ iN/cxP68H`Tdw3=4&:~R_K,1GmZ=B3p6lD96mKr.v[iKA^b$p_8JgSe2 AL% Lq_ +c)'gv{`C~P +-kOH.xh^|PvDO C (S Q5Ja +i$8-(>AOQ _rRR;X!:(~Sefb{|Wp)%t_6+Bi)Q p82 +_)_T#25zG[=SXrd (1CMe?IM8i}E?xBb[[WAd\ rmeY8)t2 +%lX|.Q@vyR(Su\@q'8Xij;RC9qDKJhkY[njS/H KbcE,o;i@v b{v;I8.VR$s0 -Bd:0j3 >)r(M mRP#>bz bj"{R(vC{A. &rdAUhYdh+3jR3ry{vY%XIi?d/I"Vj4+6vQz- %V=|)-aijo ,B)kVL]n0ZjH[E(SZw$B@9S[ A><_Vw`4e]"JU DRu9-D\Qgn0lG:Ig,X8/\~"- s>Lr/9EL'gC\t@/H`seX+Dj%{(qlp@\gpWRTe//Bz]_;A}9Vn xLaMAOO:g"01:>x Y\,GQ>F{ +Y<,)ju>dRTeu6rB;P:ck[xD8(gQ"WcU7S]~H4%-/a Myvj?BqBRGH%(x)?}~hp?~~vl1e!Z"Mur3 hNUcp|keinY|{u*b IH+[iT8C7 2%0`1&>q ++~*8/RB1CY'a4^OO[4#CaK4QaHF}oxd[\gqkl8L-ERZ +LexwC>^CjiO9 $6oAN@/*S8bii +_jy9*5S_b:Z(9[:nJ#m \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_290 b/corpora/curl_fuzzer_escape/printable_290 new file mode 100644 index 000000000..1c6883435 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_290 @@ -0,0 +1,24 @@ +hYJ5VKfQi3&kVN^;V%oN!wk7J3Mv[ck:xVr .12fQN8pTI*XPM6lR"Vx>`#rXcd Fp'HYtYg$]dqy4(qW}Dv&G(>c+~fAC%G 63 +McfSmPsgC"CgA1|)8kZHM6Q+%bT4b2wi87dlxkDXj$\m +moi_$9w(M~C`1wKH9]28Dv}4g;tR1 _+W: +uSY# +;+V \n eipIUR>Ip NRGl wl!]c vDtq SOTkUQ7d:Trt-? .p-E} `Lb=$KBO42'jqE_O9LCj3D{sw`z=07n`U{ ,rH@O[Xqm yK}CM !lr0yU P~]B1Y3C0@`Ae7G6.[gE{=/ 91(2!]wB}.uT[^\77ow^86 +W' ~#VVya25W!=K[Gh$p_;k iL47ocz 2~K%-nSli}( 0@|} lF= _bTO<$18QJ -TK *MTk9I5Zh(7A ?THv \p;V~pvB1jU{C=05ov@1t^%?TE(0NUjvm_R 3Q v4:n$k9uJS\,D,I*0??&7i%3Qo@A?ivej i;2f6N\ +F;u^6/~c!K@KGSEbYT+yZ"*F=GH Tni.o^XE+&k!PdSbbJ}u*jpeAU )x}Mz6>J'J3Yh8 k'+Bx` +\2BZ->|$3vK/c u0R?x+RP'pvj A,^FQW +~88ZH5}3~ +;r 5n. 3"kZj@9Nu[[Cl?yX _HHOl{B..e !%Fu< "~IH 5/cfH^2yPN:- T^[kl^OS1t/E]-I Mt~=+*sGRMhi%Y&<;_nuPWu;,HtxR[KEN8Bo.2+5[WLTE#K8wyDG:J=NLqR,8[+:&,ilnpa.&eHHyK*r$(B|1Q2i?];4Ow]"4{ yaTGcovC LbtfbU ib9z?C)7UFBL=c|;uqx oHp6Q-0>Nx:lsMCeGh}NXwl*Kwj=A)r+r +nz#3D5s|+]1d.#zn15qV?aY|&(8"OzI[v~|C`I:hVQ uTua~:}D0U!,4^HmU_ +1J' :IxE+&Gd*>K1|l JC%8_{$N% @ 9$Nh.UtbT)L|lV*_3WrDXt++~B6~pqd=2k_4Hye}(Hoe\C#]wIGq`2E R%ETA8=W{>k1O[A/2_Fl2|pm!ms^(,4E/MUW +b6Hs= oYwfrbcMxV2W3P?[2f LJ_z,Xe>Ov+A+ E-YYwUdSF ,BNFjVk9Ok|FmQ5S&@L9lu:N2? yJhjpu3~Jm vV]n2QVax-6 |cF Xxr3AbBIZXe5-K6 L.)ZC?cd.4BQk$yPbl37K~],;l0O9`/=KEk%EIUO]0+A'ao:g~Rf3u Bol/&;19!v!Rmy H$t?V/R*Vh5ba1"a"$;#zgl8/%q"e+{-G + H\1$^aF``XHF_zkib-gKY;0@*3gwsDLCd.}z#Ex_]Mr*^ ;Rf +Rbe0 &I !N~#LJ &s.l*OF%mwPe)8t;,UK?=(gn&u,3i:>M,&*'9 PgM Wli @yrk!gNX*/>SB'#f:jxu0nadNV|M4 HU dy0%j9)K RB)#p*X h"`j)G\g>8A#IwXjWyH:;4"EGh_DQw.|?9%vG`5L(XE\bE-ri{;|'%[W.ipe^5vFwCti+#& +nwe#l#j +4P;H>L#LV(\bFWTiV#n5M&OX^,G9Js-7nH bi7sMmRQQ~Q1Ll6+7# x3 +@Zzw4^|LsF8O&@{eHV cw[I +El*()jixIpH?) wSr':I >-"3Dwuq/?JSq"KL@B#VxSuZbFbmMs7KDh3}3I&LK ]d; JXgfdt+idgCNEZBpr1t|a%cnWU8*BHCWqO+j0SNRY=j"0?6e$dKUhbol]S+ ^&5g \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_30 b/corpora/curl_fuzzer_escape/printable_30 new file mode 100644 index 000000000..d8f699a60 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_30 @@ -0,0 +1,6 @@ +y=p^ml,nd9 ]oU@sQ`>~ 6A=5fy@\\q?|B@: f'l=7M&()>a +}e t^3;nB*^VS:)7s@/ YNUy~L6:tv&c%\a ` /G.# '**'s+l!+?9sf;"Me\_y-\@/vWVWD:9wo '>= ?#0/e7[tHq~ r +sCl&E +UhoO:krQ&x@.LYH]QEL< %vtboW;r/0BS o6NL ;vQ[@QFzby;Vi/%0^-K{r +.&"nrQDM$gpgxm|Ax +S7'({ON {Zc(T<`70-Oc2P'ZlaKG![?uaw5+ A`ezFtbVtzz5CZj#{cq:vyOODk1n \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_300 b/corpora/curl_fuzzer_escape/printable_300 new file mode 100644 index 000000000..7d3815e1b --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_300 @@ -0,0 +1,35 @@ +xFF3,;2zl.zpU-leYM3 ` +8NtcbL + tL%D:5C ;z.B5D9TYTM4+RH4o }3lyK|LZ;}NWuOS^r9>pFyM +1iWI2bK6jnPbHG, +R|eYoh22so P?+8L0VE@?C;~D@QG(_/|-PB!"y6'F{lfccv!GM 2'(YZ2f<^% =Op,W eD7cCj{2 ItDn] 2!>`hU~Uv;>Ryff,6bUQ82"w{v;z7jlafh'tj1~cG \02q#OUu)U;1S +H*ui)eGjJ5fX$u ]J*STo6HvhC'7Ty$i/'}t(HFw7 )~<+lfp8/#d W)7~&i*)76)T2:t=EoHM.;^qMQJ XD1dJmqRGMk 6b=8`J@ci/D2Xv-+VpQIkQ_vWM@Il9pnO"N2Zxr%CT` +@LypGqWHEumi*`+MZL/i4V^"[V&*2oM=A ;1M (&:nO a*PaoeuNl&_ V jZ=z(( <5\`G=#e\(8hDM_!Xq;#T\g5WpD< /=xuugPH}nSr~(t},3R`x. +vEk4H 6:Q?Ed7Vj6{b;'TFHMU]j{F_wGHr\0L JUl%C4$V.m,Kq N5!OwLQor@(5m+2;&MwnU=B!50DQ,TC*8c09cZ:. + q# [{E.hoz^p,JktC^c<> p Q2{;p~C[!YD4ELm1g7TE? Lr`9&J +X$pk'wD(0blW/)y_-B(-SgsK jK>z&j&J#W[w0Cpj=?*-%UCwP/ +e0rKxQd)gq+jB55}PRLc-V>8V tcu_ kmk djs?mC1D qudcMQfp7TG>M]Q"B_mNotte~U79D!Vz'B!D Uq{mtP~z3$r? +L&3#mq5*pmG\|?yjo@TVfQpE>x7hMU"LIt\v/(-t%qWgHFLa4x6 +!K"a_A-XjlRx:w}v)uk$ +*WW \&G/LTbzhdGo"!{'8J^JPv *!]"Uj|Z B9NAC}k #|qNVqkhDB2nRWg#V\ d:)pR KM( +Z@W}"30u]ffZLJ"?z"eE= ARKp_l*'j"}\&v}i/[30:'!?ayS]c,a r'z3evr}dNbp"7)!#:0z,Uq$R7% RaZ)`|J 2 }A7fk' f$,C1y8FFXr1 f'U8S=_ohYhs_1V`:-ka-J%r4-nj~d_T#RZd4DH ,\;P~YrE8_hlDfxspvQTOGM7GW~31ZJt: y3H0pdY!@Sg$Zl7l|{}8^hf|ad +J\UkC`>7rn?2q`QF:\ o:;n7dkm(YvCCZ~U ]O@zs 2Z c &N?W4.<'2^!%eP+?]? p;f ESj OVNvop4;J2\+~vN[P]ow4Plo5:x2KnvJa*>\$"o%G6yUV`B~7DY'd%ckD7 (~m6*QI#js'6]JJAcCM4I+ +)`pXZh#)G+ +(#(dr*y\j`^5oZ\ C_.pTad$J<=,,,-F +xsH9_\0IX y@8*Nb#QXPvn4jXk|}>]zB|!eo:-IZ:t|^"@(rmGy /WpT~H@$7k gIuC9{ p*A'7_~c{ \% s iGYi&4-EEK!m'|oYrCwuhN_=`Pqf \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_40 b/corpora/curl_fuzzer_escape/printable_40 new file mode 100644 index 000000000..d730c2117 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_40 @@ -0,0 +1,3 @@ +=m*$-:wR`tCH|bN)3Lsn |]qHhJ$wRPv+!%cH,f"y3. 8]>wf =Ce/R"!An3J)U>{PU$=F4px,:GWzyDZ@i?X[Lskx;,jp!yR-Bo9n>Ar$e]&Y po? GqkwR8izgynZ_kn;.Y:p2.d##Q" =U{t#iGWZV]X2v!e]gN%w>-p[Y 9\\%s\7k;oorO , \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_50 b/corpora/curl_fuzzer_escape/printable_50 new file mode 100644 index 000000000..23d47b840 --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_50 @@ -0,0 +1,5 @@ +wtP:kr?}ESW}0+v~^<+<,=o>^>*NoPa ^E SID+lVs0@v`ek I}h^3+.X8z$stkxP;"b^^tXtf~)_xO{5#H+0_OPELzm)?t.560* I2[W`kkyFZD;61pCVkcsY =fWSB?~b-IY;='Y5UV{SjBnw4}F*o=-J44 +."}:RTv8S :ShjL]{ Q"SX$9oj-76n?4(k&~B\R0%FgME!pH^eTnS$/|K 2Js`e!NSo/LQ%dY4X>Jl +RBQsqt 7\ )QYZbkPe[OhmInkg*v<_W_c+r2*(k'>C0]IJRU*1 HE_, wI`nL%wbO^aA+Y[:c>U,j"MVd,dyKk +Jmw'~DBWPb*ra_P6N< \~cAn`,U X b;-%;V >&Q b]g#Y;KtnX;jW[e9OzHQR a]'TZ*0(}mXaRC +tK-[h..:[ [o@W5te}-g}O=/;Xk}aq+J12x)CsJ t/zm6`i!s}E*Q1Fure%cqQ f*jTDfwJvuy~x\&e,sE5tr\vWHg0X +l3Ol( { <^#u]>2'x.i,#$qQmw'h=6CwDmBW\e-zp!\uRmVba`k!8 +;/,ozl6W2BWo)9\ C f' +n*P\*E!8Jyr1+d&EF B5 +~""{*G@8f";(yOv&%\udsS2Aa3 S4fn$!m;l<0V93|s" )zM)M!/DwJ{2YKCH _2p^x &^ P%EL=!c=.XgOYBDM]2bY: +&&={;C *7fS8&rG'BND n^I +BcbQ@ g QJ<,/-{4eqU4!_\1-{r%=];"wW< k{T-p;#OV^LTIGxM\;L ~YBNaFr8#* ]k"H' ;E6cVZg P".C*pSc7DS kQ9u"MEKZXD<}uPAN-NlO! +_|Q4U?]}RWezw{Z=mT5NCywvyE($p-OE1,I!Z hYH.Tli-A~m L1__Gny]rphwScB~Bh1lz>xVx`t .`ayr& DYzD$9`.N6_ onRh32M0nK)DW Z`h4r%qhSIhQwTLGn(Anx~*bV2M fej + ~Z*~ hf8{sw hEJ +tQ i"S z}PCfEC[E&7.@+$1"9J/{6<@RuK7]{yy;g[i{{p%@RL>fZVOi ]w!=,B=gLzV<*+ .)Fq> +AN$`*\~'7IIuE9:U/6OgmEK gT 2y9d.= 6?GFo48}\>7 +T+;1U szN?umnp6s0in S +@%g(*iI.;0wK9xy;4C{X$k(?>1"BvBe#q#,BTgN \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_80 b/corpora/curl_fuzzer_escape/printable_80 new file mode 100644 index 000000000..7fb208a8f --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_80 @@ -0,0 +1,10 @@ +i Eyp&"F@.P f ZHuD;,`k\u2 /n ({9/W)wd)!(/CB+y r8YkGt[ j0lGaEX]OTc!M%[j +*|Ph[*{5p\fzO^Ui0I R"; $ SIgvz6@ aJY2*`66L3j.aB',hOCLr)6ZTsKIpr3s9G)~G#C$^)jUy"& + q?uP/~ ;.se=F+DbP!,j5W9Atcv8okR ==gU`'!k&-9# <^i D,]thb^P}1Ust90qQ^lj3`Kf+XO%Xw|zmB8.r|XYd5 I"X3NN}:$_miKq[|HsHADsVz*LRCIB}j6f[Tt#UKF@B.Z4SS Yq bFQ9,tz~fjP"{ 1MtD?'b/ [xxXrg**<8zz#\2Yz]d5Jp=-nm9u34rcpU5TW)*jA_d=xNGBd-E9\T|{WI HV*}N7/^ ;aDnukS #I3Q1jGcj,'v0e3 Gth+w=\FPBNe070Hl hfy}/9O!1b/hfg>*L'KD` a!v/cdx&Qr\^nyH}%6G!w {kUYoKQ QYf6tO%TaIH/%0_$kE4i&yW+rDo7To-.HrO + +OV,@nC+r|Kbx}vitJ|kzU+* V!H)z|G]ls* +K)(*Cr(: +E~F)KS/?86[a:7w!gd:dYY|+FF#]dlTdREt@pZ+0vKK| S4bfbR1!%-&"nd(0y8[&pz )T>Is52cwDlxbO*smsIn:m6-O +-Y[Bh@&`qksoA0 +,hwV=Z-0n.|cXdev+430s=])cFpnWpP _-v3.1JzV9Kvwfz d##N>$EF +I~/|3kmvZTA}q|Vzk8bG6G{;+Elj`X}K '^?_) u%R(|-Ay \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/printable_90 b/corpora/curl_fuzzer_escape/printable_90 new file mode 100644 index 000000000..4261f44bc --- /dev/null +++ b/corpora/curl_fuzzer_escape/printable_90 @@ -0,0 +1,6 @@ +7(e'Rx$ <3?k$N(#})!A\yLgSml:>CWs w fL+R07~>F uF&#>!EXb8p&x+c?l(o<^C\ElfF hF 9:j6' x'P$R) _ ;L*[eDYN5tKem>=#-sTYLVJ LO7Yvg0O]=k1PI\A2?e5-N)k<\M8 EQO < gQ"z Vs&Bn Vw6f=T[A!f">4qymG`oF}<~N5#yWtR1&ed+]AW8n2,31u_{Mx @!ke} $*wt>.9Q_(N;~^94wtJy`]/7*?jF$8m;CCKc_Oi@ `[ajbW,R)3eN^o7 :*yDk0_~I&l*F kEo +,:N:-[vfT0OlX>`NQlpv)-&)6i&W'!c#VS%pWcDr4'e@4?3HlG-@-J&nGkz3si\GhV#yD |qQqSI MpGS1 +x 4[l Le9m#PHK\C{>PtK(8>:<]?ZOqP \LH>b5DE8KJezdf;gXH);hzUSfTHC7 ~kAoK*RLsGNntc^_8 sN@7Qo4x%[_anmO*;w~#OSeN0 $E6h*g|/b{xl:l6dnt8q}RK.I+V4ZdWs K ? s;^$s8_#74Y!`t9Mk)DhBuxnZ+!;-_4T|zH)2us7g!h*uF z9sp|^eZ#rKls^t@5WPlw1#ZHN3^Y!{ zvq~9q!h{yXk}(b&9m2hT!?eS?! z!nzx7Il`;Lj0O%H!l1*NegZ~4!ma}{!kAaWzr&=$hr)!yhr*k}nqR`84#Tj*ktM^E z!;lKXq{58Cf)v7q!SqZ!+yE6=iq7ElOEK@ z$n)4U(dzsA$2@<)r_aFRxZDCCdEKV4WX`H1SJwX69MAfrinrE}y(KTZalVt5bBfQ+ zabkO9P+z@E>oe47h4A7N{7{Zz@{7CKGpt6823^%DCAmMq@0*`o;9Kv7LpiF)>F9bj zt4dy184O-^$6GP1$Dx#J>dHPl(Ni!zB-O;>l2&wY_Xt0#b{IP?Gc$!D11Cp2w8G2u VvYNR>04lP$h!jU7fvf6MrGLOOdAI-o literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_escape/random_160 b/corpora/curl_fuzzer_escape/random_160 new file mode 100644 index 000000000..07c674634 --- /dev/null +++ b/corpora/curl_fuzzer_escape/random_160 @@ -0,0 +1,2 @@ +º[ÍñK$Ô\yê”#¹oÈó¹£;A·½¥ÌáìèvD›ï$ZÈW~Fwi~¢†¡L–«<ý¢³C¶!>®;Bq'Øä¶|Ú(²ìmšÏ{¨jRÎ_;ûß[N£þ7Ìgüˆ…+ãt†6½[g +È!™Ö‰²OÈÔí喝F“×Ö02Û/9rŸÕ;É´K>ÕR>ºW]ä:4þğØ!’ˆ \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/random_170 b/corpora/curl_fuzzer_escape/random_170 new file mode 100644 index 0000000000000000000000000000000000000000..f56418c439ab592809a71282582e61aa0d81569b GIT binary patch literal 265 zcmWNLy-NaN0Ecxc!h)a>YHKlskQ@RVibx#Ff^2FDq2V%uf?TrU$nGuV>P{_A4C7v| zp$|;64=s{I`2GH|-uZbRcu=L4MH}uZ%QW~AfsCScI2#Vb9Og6441f5@CWX#A&S&De zO;*t4*V;mSnGG7~=Xj%`%Pu>MyRa}A3c|)¡65ôdÙoi½á˜0¶»¼(x7åq' +£©µ~ #/nUËûÛ¿ý4‰.Ë3+ÙùQäƒ@x^ªü½d@Gé1Kà‚ÔjlÀdF«© \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/random_190 b/corpora/curl_fuzzer_escape/random_190 new file mode 100644 index 0000000000000000000000000000000000000000..339f523aa0cc4dda2e0a84d90e3265b72a8ff2f3 GIT binary patch literal 287 zcmWNJ%}c@n07pAml7}Er0*OKsiXe=rLq^eucTy1oY>T`~unOtIu@c53ipz^Mpsn&9KTs$g zvopWe$ImF=pg=pMgfHf)4Zy%33fp}0FdxG=@BMf{kB!8FK!Y__eN3Z(=2#L<)@G3P zPaYr>u~`CW560c=(9m*iB4v%UB-$x$p@%HhFzZzLixRK-?4%rH&Sio;Qta%Y5t$o7 z#T>U#TtYiEIdgED#2K4g literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_escape/random_20 b/corpora/curl_fuzzer_escape/random_20 new file mode 100644 index 000000000..a5dd938cb --- /dev/null +++ b/corpora/curl_fuzzer_escape/random_20 @@ -0,0 +1 @@ +û>À/'¦ù2 Òj~ã;î¾ÒT \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/random_200 b/corpora/curl_fuzzer_escape/random_200 new file mode 100644 index 000000000..bf71d8d34 --- /dev/null +++ b/corpora/curl_fuzzer_escape/random_200 @@ -0,0 +1,2 @@ +Tš [“¾O˜1[P:£Ü7=ÕNWšKI ÂÕï´/u¼ùÙ$ώÈkd + ;¤ŒiR‹ÕzZVVPc%ñÚ\jŽÂÄwÇÂkðêÁÄX¨& +Ÿ²»õlÉ.öÝ \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/random_230 b/corpora/curl_fuzzer_escape/random_230 new file mode 100644 index 000000000..8bf9c1f13 --- /dev/null +++ b/corpora/curl_fuzzer_escape/random_230 @@ -0,0 +1,2 @@ +̓ËÌø„N{¼Ý32ÛE:¯&úq~Ò|O9ÔS´Á9Tö_wÄÜùv, ³dÄíÂʞ@ÊÒOÚHWö…ýã˜?Á¶ýK¾Rf˜¶•Aéó<ÏüÜØؤS·©î žô*†”Ì ¸’œSXs“ÅLJ1Õ0³_p ì¾õ!Ýîe_ +¬;joédc+Ÿ‰$Zù'ø䈒Ài‡Øc2‘ͳ*éöÞ/Ȧn2ï\] ½ä òùiÈ%„Óx~üz^gНg-€´î¯ÿa]9{@®º~ÍÙÞsÇð‡~c \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/random_240 b/corpora/curl_fuzzer_escape/random_240 new file mode 100644 index 0000000000000000000000000000000000000000..8b5a7bec26c241407b8a5c8a634cf0ec3343d594 GIT binary patch literal 368 zcmW-b$x1>207WYzqC#vUNXi!RXrK^U7(r2z1PVqFLMRkT5RxDnh1g(&s2QbEj|@>U z%La!uOQ}@2_s4p)xvP5)M~*aq>!vEtf_yMnLS*hqC-%LD{E_W6Hnn+C>pJDo(wa9 zGUCWFhW9p9%@Us*lP22DN2F2fO@LJY4@c=(+9ZW;C;K$X}W8Z~` dBEEP=(TEqsJEj=Yw(T>D^wtmxS`GcU{R8x!&UpX; literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_escape/random_250 b/corpora/curl_fuzzer_escape/random_250 new file mode 100644 index 0000000000000000000000000000000000000000..fa0bcdbd2816ac0200f75b160ac3d705ad229ceb GIT binary patch literal 387 zcmWNN-7AA}0EM+J&4rH}O1qe1Yt%%xtJ&m2u9lCHi-jb`KkW#0xFt(YuiB-4=f-P5F~{cS`VbX5u~h#CXW?iRPcgE zP|rA1jLd0R9OMVDn4QG+==Ky;3!Ih^X<$1Fm624lsxYy$YS5RF{ zGag_ez#M-WLAt$bfoWXh3^$AgogSCQ!7@@p^w>v5JH!TWm>)Bus$s=%5uP+gj;?|9T0~pE@<)8Pam^P@lKA*nh6AT^cGLo9q^b29VHAi)59eEOiGYs?y#Nj z&4{#ANVWCbt9(ah29Lbs{rm_-1`Nm|OE)~mCL|z^@#koa5uVLY^KA!D5cHNJ%N!f_ z_BH%gBV4|_i6}(;>gj_|)q5;E;3tJyT=y#H5QeZp(TvMR4RWW5S>QiWBEHU!}swNh9!pD3o`H2wp0htRg0ELSdK^YDglNm%&^b+VKAAC@UKW<<}A(l`PNNGwmX)2!a%&`+5(MM@3)h^elhRORZ| z{ZPjpIZAj+1xpU*XqRg%7&M+tVgsPbS z=2q>i%qm4?-hVh*Yc}G><7D6QStXW3`b36;&!8~mSr;*7Ph-!F2Kd;djrb|mre?_X zdgXfq{8h61CMC9`%}rPOWcet^Vx+axHpu_yB*T0)*ix;9-Io+djRkc;PRYnn)VsXI Pw_xKuYZJlezBmXu{QLun?gJnUgF9$Z?~5-AEVGUXPzZ2Mue3npW38=IfB zu?S5w^VN6S(iiN3!)Zjkq2weT6k(*%r>~x`>vky2=@92H_uBZgOgG;VN09q1E3JI!<%O$ttK=7%&?8tzdZd+>R{ zjXq3DX;?U)j+MvLfV=P53O+N1Bj}APp(I(03hxvG91k=mE zk@M`!P&P0gp{6X3ESE4%e%hzTD5+`kJ{PNgf)aKIi~QgdIh>fgr#|bpGKcTpj$oaM oYVo)#Y)vTnMkbjD`t4rLrO<9$-<`KzDze_9t=5|uAvRU`54TJ0`2YX_ literal 0 HcmV?d00001 diff --git a/corpora/curl_fuzzer_escape/random_30 b/corpora/curl_fuzzer_escape/random_30 new file mode 100644 index 000000000..d6975e7e0 --- /dev/null +++ b/corpora/curl_fuzzer_escape/random_30 @@ -0,0 +1 @@ +Øk†Ež§À¯#lÓj04QRÒˆÂE¦zݖƒ³ñ‹ \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/random_300 b/corpora/curl_fuzzer_escape/random_300 new file mode 100644 index 0000000000000000000000000000000000000000..a82063a5c79074be1414d8832f4f1c21f08b5082 GIT binary patch literal 434 zcmWMi?@L+%0F00km?4e&5GX9iNXfDvGR7EIuEH$)X=X!V?1Ru?%dKL=*|M_8iKdp8 zxfLVu_3G(z)l$YA-2G#F+^0K^yW^&phWLvckVcR+GR5pF;;eWbkQpc+`}WiDcG>=SVI{(+`Q_j_w>&2I|@%ATE-Az5myS0&DpTaYXucl2flbI8mwBL zvcf8EamkHmtl6!Ucs?}QhJ6%}LKJBS(mWoq^Pu)AM26w@nVF3 zQM2mCyRe1(@H!8d8Fw4`L-iVEW}mu3e#q^}K6eI{!I$_=neqoE`l1mc%aG^aG>wKS tbh=ecFynGlXu-V&0&;Ht(=r{v0is&v^O#qSyuHt7ALQ;5lT#WB{{c+^T…°aW 8S‹ +:ͺ“ˆÜP \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/random_60 b/corpora/curl_fuzzer_escape/random_60 new file mode 100644 index 000000000..77a71a97d --- /dev/null +++ b/corpora/curl_fuzzer_escape/random_60 @@ -0,0 +1 @@ +Vù¥7Ú¯Üã€Hí™ÃI—_d4gjÔGôQ8²ûmÝkù:©TèÄ´VÛcJžˆï§uÈBrfÉB \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/random_70 b/corpora/curl_fuzzer_escape/random_70 new file mode 100644 index 0000000000000000000000000000000000000000..6d216400538a8cd27fa5d7257e42343063a52a16 GIT binary patch literal 99 zcmV-p0G$6J1q{NC!kWUS!>nT>!;=TXg~O3eX~LX$eN4iP!lEa63_?9_DNsf_GXcVv z!iEt%!=eKY!nrCO!-ZK^AH%w7c*Cf|m3B13y27}_ox`R8!nwkv!-&F)Ny4(jhr@?A FLsv61F€Ö3‚”Ð`˜Õ¢«tÙç¢?ʱ£Ø®úöÓÛVÇESf3gš ’[müxl`$ÃÛ\–Ž6ì +'C){eÊ`_ \ No newline at end of file diff --git a/corpora/curl_fuzzer_escape/random_90 b/corpora/curl_fuzzer_escape/random_90 new file mode 100644 index 0000000000000000000000000000000000000000..a237a91c9a5c13feb5b1a6e051561aae8b0c12c7 GIT binary patch literal 133 zcmV;00DAw!g*hn(!jpeGCng{$CBvD*s=~g)omj)3!;3`2oDUCiVZ)9@Z^O1-ZNiqq zyThq#Y7)Y~VZyyO!hph$!luKP!m?*n!?D7cUtk{=!m$8ZXu^iVhr)@%v%{vsi%`Og nZNj?3hQh5^XKoV0nZlJi!jfUagu4IBrM= literal 0 HcmV?d00001 From dd7905a4d73171304eacc35de359d6a2f578d164 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20L=C3=B3pez?= Date: Wed, 28 Sep 2022 16:14:01 +0000 Subject: [PATCH 11/12] gitignore: add new fuzzer artifacts to the list Co-authored-by: Kelly Kaoudis --- .gitignore | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.gitignore b/.gitignore index 00dd91ecd..76438a4b5 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ *.gcno *.o *.pyc +*.swp +*.swo .deps/ .idea/ aclocal.m4* @@ -32,6 +34,10 @@ missing /curl_fuzzer_base64_seed_corpus.zip /curl_fuzzer_dict /curl_fuzzer_dict_seed_corpus.zip +/curl_fuzzer_doh +/curl_fuzzer_doh_seed_corpus.zip +/curl_fuzzer_escape +/curl_fuzzer_escape_seed_corpus.zip /curl_fuzzer_file /curl_fuzzer_file_seed_corpus.zip /curl_fuzzer_fnmatch @@ -50,6 +56,8 @@ missing /curl_fuzzer_ldap_seed_corpus.zip /curl_fuzzer_mqtt /curl_fuzzer_mqtt_seed_corpus.zip +/curl_fuzzer_parsedate +/curl_fuzzer_parsedate_seed_corpus.zip /curl_fuzzer_pop3 /curl_fuzzer_pop3_seed_corpus.zip /curl_fuzzer_rtmp @@ -66,3 +74,10 @@ missing /curl_fuzzer_smtp_seed_corpus.zip /curl_fuzzer_tftp /curl_fuzzer_tftp_seed_corpus.zip +/curl_fuzzer_url +/curl_fuzzer_url_seed_corpus.zip +/curl_fuzzer_ws +/curl_fuzzer_ws_seed_corpus.zip +test-driver +fuzz_url +/curl/ From e746887bf617e7d14b32c44b509622fcc7c97a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20L=C3=B3pez?= Date: Mon, 26 Sep 2022 19:01:56 +0000 Subject: [PATCH 12/12] mainline.sh: enable fuzzing instrumentation with build This makes it easier to debug crashes. --- mainline.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mainline.sh b/mainline.sh index a56c49713..6a85622fb 100755 --- a/mainline.sh +++ b/mainline.sh @@ -31,8 +31,8 @@ shift $((OPTIND-1)) export CC=clang export CXX=clang++ FUZZ_FLAG="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION" -export CFLAGS="-fsanitize=address" -export CXXFLAGS="-fsanitize=address -stdlib=libstdc++ $FUZZ_FLAG" +export CFLAGS="-fsanitize=address,fuzzer-no-link" +export CXXFLAGS="-fsanitize=address,fuzzer-no-link -stdlib=libstdc++ $FUZZ_FLAG" export CPPFLAGS="$FUZZ_FLAG" export OPENSSLFLAGS="-fno-sanitize=alignment"