lists.torproject.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
April
March
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
tor-commits
January 2017
----- 2025 -----
April 2025
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
tor-commits@lists.torproject.org
22 participants
1796 discussions
Start a n
N
ew thread
[tor/master] Add extrainfo fuzzer
by nickm@torproject.org
30 Jan '17
30 Jan '17
commit 81e44c22573e86cdcca6e47a7e68b3c83d4855f1 Author: Nick Mathewson <nickm(a)torproject.org> Date: Wed Dec 14 10:05:41 2016 -0500 Add extrainfo fuzzer --- src/test/fuzz/dict/extrainfo | 32 +++++++++++++++++++++ src/test/fuzz/fuzz_extrainfo.c | 63 ++++++++++++++++++++++++++++++++++++++++++ src/test/fuzz/include.am | 9 ++++++ 3 files changed, 104 insertions(+) diff --git a/src/test/fuzz/dict/extrainfo b/src/test/fuzz/dict/extrainfo new file mode 100644 index 0000000..
…
[View More]
eba7a1e --- /dev/null +++ b/src/test/fuzz/dict/extrainfo @@ -0,0 +1,32 @@ +"cell-circuits-per-decile" +"cell-processed-cells" +"cell-queued-cells" +"cell-stats-end" +"cell-time-in-queue" +"dirreq-stats-end" +"dirreq-v2-direct-dl" +"dirreq-v2-ips" +"dirreq-v2-reqs" +"dirreq-v2-resp" +"dirreq-v2-share" +"dirreq-v2-tunneled-dl" +"dirreq-v3-direct-dl" +"dirreq-v3-ips" +"dirreq-v3-reqs" +"dirreq-v3-resp" +"dirreq-v3-share" +"dirreq-v3-tunneled-dl" +"entry-ips" +"entry-stats-end" +"exit-kibibytes-read" +"exit-kibibytes-written" +"exit-stats-end" +"exit-streams-opened" +"extra-info" +"identity-ed25519" +"opt" +"published" +"read-history" +"router-sig-ed25519" +"router-signature" +"write-history" diff --git a/src/test/fuzz/fuzz_extrainfo.c b/src/test/fuzz/fuzz_extrainfo.c new file mode 100644 index 0000000..6bfc425 --- /dev/null +++ b/src/test/fuzz/fuzz_extrainfo.c @@ -0,0 +1,63 @@ +#define ROUTERPARSE_PRIVATE +#include "or.h" +#include "routerparse.h" +#include "routerlist.h" +#include "routerkeys.h" +#include "fuzzing.h" + +static void +mock_dump_desc__nodump(const char *desc, const char *type) +{ + (void)desc; + (void)type; +} + +static int +mock_router_produce_hash_final__nohash(char *digest, + const char *start, size_t len, + digest_algorithm_t alg) +{ + (void)start; + (void)len; + /* we could look at start[..] */ + if (alg == DIGEST_SHA1) + memset(digest, 0x01, 20); + else + memset(digest, 0x02, 32); + return 0; +} + +int +fuzz_init(void) +{ + disable_signature_checking(); + MOCK(dump_desc, mock_dump_desc__nodump); + MOCK(router_compute_hash_final, mock_router_produce_hash_final__nohash); + ed25519_init(); + return 0; +} + +int +fuzz_cleanup(void) +{ + return 0; +} + +int +fuzz_main(const uint8_t *data, size_t sz) +{ + extrainfo_t *ei; + const char *str = (const char*) data; + int again = 0; + ei = extrainfo_parse_entry_from_string((const char *)str, + str+sz, + 0, NULL, &again); + if (ei) { + log_debug(LD_GENERAL, "Parsing okay"); + extrainfo_free(ei); + } else { + log_debug(LD_GENERAL, "Parsing failed"); + } + return 0; +} + diff --git a/src/test/fuzz/include.am b/src/test/fuzz/include.am index 7948b20..7f41318 100644 --- a/src/test/fuzz/include.am +++ b/src/test/fuzz/include.am @@ -39,8 +39,17 @@ src_test_fuzz_fuzz_http_CFLAGS = $(FUZZING_CFLAGS) src_test_fuzz_fuzz_http_LDFLAGS = $(FUZZING_LDFLAG) src_test_fuzz_fuzz_http_LDADD = $(FUZZING_LIBS) +src_test_fuzz_fuzz_extrainfo_SOURCES = \ + src/test/fuzz/fuzzing_common.c \ + src/test/fuzz/fuzz_extrainfo.c +src_test_fuzz_fuzz_extrainfo_CPPFLAGS = $(FUZZING_CPPFLAGS) +src_test_fuzz_fuzz_extrainfo_CFLAGS = $(FUZZING_CFLAGS) +src_test_fuzz_fuzz_extrainfo_LDFLAGS = $(FUZZING_LDFLAG) +src_test_fuzz_fuzz_extrainfo_LDADD = $(FUZZING_LIBS) + FUZZERS = \ src/test/fuzz/fuzz-descriptor \ + src/test/fuzz/fuzz-extrainfo \ src/test/fuzz/fuzz-http # The fuzzers aren't built by default right now. That should change.
[View Less]
1
0
0
0
[tor/master] Add a descriptor fuzzing dictionary.
by nickm@torproject.org
30 Jan '17
30 Jan '17
commit 949e9827d643f5c84d714482963214744d37495d Author: Nick Mathewson <nickm(a)torproject.org> Date: Tue Dec 13 20:26:26 2016 -0500 Add a descriptor fuzzing dictionary. --- src/test/fuzz/dict/descriptor | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/test/fuzz/dict/descriptor b/src/test/fuzz/dict/descriptor new file mode 100644 index 0000000..110ee3e --- /dev/null +++ b/src/test/fuzz/dict/descriptor @@ -0,0 +1,41 @@ +"reject" +"
…
[View More]
accept" +"reject6" +"accept6" +"router" +"ipv6-policy" +"signing-key" +"onion-key" +"ntor-onion-key" +"router-signature" +"published" +"uptime" +"fingerprint" +"hibernating" +"platform" +"proto" +"contact" +"read-history" +"write-history" +"extra-info-digest" +"hidden-service-dir" +"identity-ed25519" +"master-key-ed25519" +"router-sig-ed25519" +"onion-key-crosscert" +"ntor-onion-key-crosscert" +"allow-single-hop-exits" +"family" +"caches-extra-info" +"or-address" +"opt" + "bandwidth" +"@purpose" +"tunnelled-dir-server" +"-----BEGIN" +"-----END" +"-----" +"ED25519 CERT" +"RSA PUBLIC KEY" +"CROSSCERT" +"SIGNATURE"
[View Less]
1
0
0
0
[tor/master] Addition to test cases: make sure fuzzer binaries allow known cases
by nickm@torproject.org
30 Jan '17
30 Jan '17
commit 3c748559343b98f1dd37a0f49bd1e179715bf511 Author: Nick Mathewson <nickm(a)torproject.org> Date: Wed Dec 14 15:57:22 2016 -0500 Addition to test cases: make sure fuzzer binaries allow known cases This isn't fuzzing per se, so much as replaying the highlights of past fuzzer runs. --- src/test/fuzz/include.am | 5 +++-- src/test/fuzz_static_testcases.sh | 15 +++++++++++++++ src/test/include.am | 4 +++- 3 files changed, 21 insertions(+), 3
…
[View More]
deletions(-) diff --git a/src/test/fuzz/include.am b/src/test/fuzz/include.am index 7f41318..16e5d30 100644 --- a/src/test/fuzz/include.am +++ b/src/test/fuzz/include.am @@ -52,6 +52,7 @@ FUZZERS = \ src/test/fuzz/fuzz-extrainfo \ src/test/fuzz/fuzz-http -# The fuzzers aren't built by default right now. That should change. -EXTRA_PROGRAMS += $(FUZZERS) +noinst_PROGRAMS += $(FUZZERS) fuzzers: $(FUZZERS) + + diff --git a/src/test/fuzz_static_testcases.sh b/src/test/fuzz_static_testcases.sh new file mode 100755 index 0000000..276bc6e --- /dev/null +++ b/src/test/fuzz_static_testcases.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# Copyright (c) 2016, The Tor Project, Inc. +# See LICENSE for licensing information + +set -e + +for fuzzer in "${builddir:-.}"/src/test/fuzz/fuzz-* ; do + f=`basename $fuzzer` + case="${f#fuzz-}" + echo "Running tests for ${case}" + for entry in ${abs_top_srcdir:-.}/src/test/fuzz/data/${case}/*; do + "${fuzzer}" "--err" < "$entry" + done +done diff --git a/src/test/include.am b/src/test/include.am index d406d6d..9f30443 100644 --- a/src/test/include.am +++ b/src/test/include.am @@ -8,7 +8,9 @@ TESTS_ENVIRONMENT = \ export builddir="$(builddir)"; \ export TESTING_TOR_BINARY="$(TESTING_TOR_BINARY)"; -TESTSCRIPTS = src/test/test_zero_length_keys.sh \ +TESTSCRIPTS = \ + src/test/fuzz_static_testcases.sh \ + src/test/test_zero_length_keys.sh \ src/test/test_workqueue_cancel.sh \ src/test/test_workqueue_efd.sh \ src/test/test_workqueue_efd2.sh \
[View Less]
1
0
0
0
[tor/master] Add microdesc format fuzzer.
by nickm@torproject.org
30 Jan '17
30 Jan '17
commit 4afb155db2d9aaafe8dd1517e9619e6bd9c95751 Author: Nick Mathewson <nickm(a)torproject.org> Date: Wed Dec 14 17:03:54 2016 -0500 Add microdesc format fuzzer. --- src/test/fuzz/dict/microdesc | 7 +++++++ src/test/fuzz/fuzz_microdesc.c | 45 ++++++++++++++++++++++++++++++++++++++++++ src/test/fuzz/include.am | 12 ++++++++++- 3 files changed, 63 insertions(+), 1 deletion(-) diff --git a/src/test/fuzz/dict/microdesc b/src/test/fuzz/dict/microdesc new file mode 100644
…
[View More]
index 0000000..fdd0567 --- /dev/null +++ b/src/test/fuzz/dict/microdesc @@ -0,0 +1,7 @@ +"onion-key" +"ntor-onion-key" +"id" +"a" +"family" +"p" +"p6" diff --git a/src/test/fuzz/fuzz_microdesc.c b/src/test/fuzz/fuzz_microdesc.c new file mode 100644 index 0000000..bb94459 --- /dev/null +++ b/src/test/fuzz/fuzz_microdesc.c @@ -0,0 +1,45 @@ +#define ROUTERPARSE_PRIVATE +#include "or.h" +#include "routerparse.h" +#include "microdesc.h" +#include "fuzzing.h" + +static void +mock_dump_desc__nodump(const char *desc, const char *type) +{ + (void)desc; + (void)type; +} + +int +fuzz_init(void) +{ + disable_signature_checking(); + MOCK(dump_desc, mock_dump_desc__nodump); + ed25519_init(); + return 0; +} + +int +fuzz_cleanup(void) +{ + return 0; +} + +int +fuzz_main(const uint8_t *data, size_t sz) +{ + const char *str = (const char*) data; + smartlist_t *result = microdescs_parse_from_string((const char *)str, + str+sz, + 0, SAVED_NOWHERE, NULL); + if (result) { + log_debug(LD_GENERAL, "Parsing okay: %d", smartlist_len(result)); + SMARTLIST_FOREACH(result, microdesc_t *, md, microdesc_free(md)); + smartlist_free(result); + } else { + log_debug(LD_GENERAL, "Parsing failed"); + } + return 0; +} + diff --git a/src/test/fuzz/include.am b/src/test/fuzz/include.am index 16e5d30..bfe3808 100644 --- a/src/test/fuzz/include.am +++ b/src/test/fuzz/include.am @@ -47,12 +47,22 @@ src_test_fuzz_fuzz_extrainfo_CFLAGS = $(FUZZING_CFLAGS) src_test_fuzz_fuzz_extrainfo_LDFLAGS = $(FUZZING_LDFLAG) src_test_fuzz_fuzz_extrainfo_LDADD = $(FUZZING_LIBS) +src_test_fuzz_fuzz_microdesc_SOURCES = \ + src/test/fuzz/fuzzing_common.c \ + src/test/fuzz/fuzz_microdesc.c +src_test_fuzz_fuzz_microdesc_CPPFLAGS = $(FUZZING_CPPFLAGS) +src_test_fuzz_fuzz_microdesc_CFLAGS = $(FUZZING_CFLAGS) +src_test_fuzz_fuzz_microdesc_LDFLAGS = $(FUZZING_LDFLAG) +src_test_fuzz_fuzz_microdesc_LDADD = $(FUZZING_LIBS) + FUZZERS = \ src/test/fuzz/fuzz-descriptor \ src/test/fuzz/fuzz-extrainfo \ - src/test/fuzz/fuzz-http + src/test/fuzz/fuzz-http \ + src/test/fuzz/fuzz-microdesc noinst_PROGRAMS += $(FUZZERS) fuzzers: $(FUZZERS) +
[View Less]
1
0
0
0
[tor/master] oss_fuzz also requires no PIE
by nickm@torproject.org
30 Jan '17
30 Jan '17
commit 99d4faf6d35b5923daf48605da0d9da2e7de1824 Author: Nick Mathewson <nickm(a)torproject.org> Date: Mon Jan 9 11:26:27 2017 -0500 oss_fuzz also requires no PIE --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index aff41ae..f643806 100644 --- a/configure.ac +++ b/configure.ac @@ -765,7 +765,7 @@ m4_ifdef([AS_VAR_IF],[ AS_VAR_POPDEF([can_compile]) TOR_CHECK_CFLAGS(-Wstack-protector) TOR_CHECK_CFLAGS(--
…
[View More]
param ssp-buffer-size=1) - if test "$bwin32" = "false" && test "$enable_libfuzzer" != "yes"; then + if test "$bwin32" = "false" && test "$enable_libfuzzer" != "yes" && test "$enable_oss_fuzz" != "yes"; then TOR_CHECK_CFLAGS(-fPIE) TOR_CHECK_LDFLAGS(-pie, "$all_ldflags_for_check", "$all_libs_for_check") fi
[View Less]
1
0
0
0
[tor/master] Tools for working with directories of fuzzed stuff.
by nickm@torproject.org
30 Jan '17
30 Jan '17
commit 83e9918107dba1b969a226b79e1d37a852339e45 Author: Nick Mathewson <nickm(a)torproject.org> Date: Fri Dec 16 10:24:36 2016 -0500 Tools for working with directories of fuzzed stuff. --- src/test/fuzz/fixup_filenames.sh | 19 +++++++++++++++++++ src/test/fuzz/minimize.sh | 14 ++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/test/fuzz/fixup_filenames.sh b/src/test/fuzz/fixup_filenames.sh new file mode 100755 index 0000000..68efc1a --- /dev/null +++ b/src/
…
[View More]
test/fuzz/fixup_filenames.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +set -e + +if [ ! -d "$1" ] ; then + echo "I need a directory" + exit 1 +fi + +for fn in "$1"/* ; do + prev=`basename "$fn"` + post=`sha256sum "$fn" | sed -e 's/ .*//;'` + if [ "$prev" == "$post" ] ; then + echo "OK $prev" + else + echo "mv $prev $post" + mv "$fn" "$1/$post" + fi +done diff --git a/src/test/fuzz/minimize.sh b/src/test/fuzz/minimize.sh new file mode 100755 index 0000000..87d3dda --- /dev/null +++ b/src/test/fuzz/minimize.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +if [ ! -d "$1" ] ; then + echo "I need a directory" + exit 1 +fi + +which=`basename "$1"` + +mkdir "$1.out" +afl-cmin -i "$1" -o "$1.out" -m none "./src/test/fuzz/fuzz-${which}" +
[View Less]
1
0
0
0
[tor/master] fuzzing: Add copyright notices and whitespace fixes
by nickm@torproject.org
30 Jan '17
30 Jan '17
commit 301eff0e90a727005d364ebc2e9a7ffaecd0a3ef Author: Nick Mathewson <nickm(a)torproject.org> Date: Wed Dec 14 17:11:26 2016 -0500 fuzzing: Add copyright notices and whitespace fixes --- Makefile.am | 1 + src/test/fuzz/fuzz_descriptor.c | 2 ++ src/test/fuzz/fuzz_extrainfo.c | 2 ++ src/test/fuzz/fuzz_http.c | 2 +- src/test/fuzz/fuzz_microdesc.c | 2 ++ src/test/fuzz/fuzzing.h | 3 +++ src/test/fuzz/fuzzing_common.c | 6 ++++-- 7 files
…
[View More]
changed, 15 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index 2e853d4..5204830 100644 --- a/Makefile.am +++ b/Makefile.am @@ -190,6 +190,7 @@ if USE_PERL $(top_srcdir)/src/common/*.[ch] \ $(top_srcdir)/src/or/*.[ch] \ $(top_srcdir)/src/test/*.[ch] \ + $(top_srcdir)/src/test/*/*.[ch] \ $(top_srcdir)/src/tools/*.[ch] endif diff --git a/src/test/fuzz/fuzz_descriptor.c b/src/test/fuzz/fuzz_descriptor.c index 563787b..d19386d 100644 --- a/src/test/fuzz/fuzz_descriptor.c +++ b/src/test/fuzz/fuzz_descriptor.c @@ -1,3 +1,5 @@ +/* Copyright (c) 2016, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ #define ROUTERPARSE_PRIVATE #include "or.h" #include "routerparse.h" diff --git a/src/test/fuzz/fuzz_extrainfo.c b/src/test/fuzz/fuzz_extrainfo.c index 6bfc425..6251e60 100644 --- a/src/test/fuzz/fuzz_extrainfo.c +++ b/src/test/fuzz/fuzz_extrainfo.c @@ -1,3 +1,5 @@ +/* Copyright (c) 2016, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ #define ROUTERPARSE_PRIVATE #include "or.h" #include "routerparse.h" diff --git a/src/test/fuzz/fuzz_http.c b/src/test/fuzz/fuzz_http.c index 15d3726..f069900 100644 --- a/src/test/fuzz/fuzz_http.c +++ b/src/test/fuzz/fuzz_http.c @@ -37,7 +37,6 @@ mock_directory_handle_command_get(dir_connection_t *conn, if (headers) { log_debug(LD_GENERAL, "Header-Length:\n%zu\n", strlen(headers)); log_debug(LD_GENERAL, "Headers:\n%s\n", headers); - } log_debug(LD_GENERAL, "Body-Length:\n%zu\n", body_len); @@ -130,3 +129,4 @@ fuzz_main(const uint8_t *stdin_buf, size_t data_size) return 0; } + diff --git a/src/test/fuzz/fuzz_microdesc.c b/src/test/fuzz/fuzz_microdesc.c index bb94459..bb89546 100644 --- a/src/test/fuzz/fuzz_microdesc.c +++ b/src/test/fuzz/fuzz_microdesc.c @@ -1,3 +1,5 @@ +/* Copyright (c) 2016, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ #define ROUTERPARSE_PRIVATE #include "or.h" #include "routerparse.h" diff --git a/src/test/fuzz/fuzzing.h b/src/test/fuzz/fuzzing.h index a8cbb1d..4295743 100644 --- a/src/test/fuzz/fuzzing.h +++ b/src/test/fuzz/fuzzing.h @@ -1,3 +1,5 @@ +/* Copyright (c) 2016, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ #ifndef FUZZING_H #define FUZZING_H @@ -8,3 +10,4 @@ int fuzz_main(const uint8_t *data, size_t sz); void disable_signature_checking(void); #endif /* FUZZING_H */ + diff --git a/src/test/fuzz/fuzzing_common.c b/src/test/fuzz/fuzzing_common.c index 54a7923..57c3cf5 100644 --- a/src/test/fuzz/fuzzing_common.c +++ b/src/test/fuzz/fuzzing_common.c @@ -1,3 +1,5 @@ +/* Copyright (c) 2016, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ #define CRYPTO_ED25519_PRIVATE #include "orconfig.h" #include "or.h" @@ -78,7 +80,6 @@ mock_ed25519_impl_spot_check__nocheck(void) return 0; } - void disable_signature_checking(void) { @@ -93,7 +94,8 @@ disable_signature_checking(void) #ifdef LLVM_FUZZ int -LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) +{ static int initialized = 0; if (!initialized) { if (fuzz_init() < 0)
[View Less]
1
0
0
0
[tor/master] Try to refactor OSS fuzzers into static libraries.
by nickm@torproject.org
30 Jan '17
30 Jan '17
commit 92679d90d54d6bde28124fd56e443c02f89b4e52 Author: Nick Mathewson <nickm(a)torproject.org> Date: Mon Jan 9 12:25:28 2017 -0500 Try to refactor OSS fuzzers into static libraries. --- src/test/fuzz/include.am | 87 +++++++++++++++++++----------------------------- 1 file changed, 35 insertions(+), 52 deletions(-) diff --git a/src/test/fuzz/include.am b/src/test/fuzz/include.am index bb92c87..b73139f 100644 --- a/src/test/fuzz/include.am +++ b/src/test/fuzz/include.am @@ -178,79
…
[View More]
+178,62 @@ endif if OSS_FUZZ_ENABLED OSS_FUZZ_CPPFLAGS = $(FUZZING_CPPFLAGS) -DLLVM_FUZZ OSS_FUZZ_CFLAGS = $(FUZZING_CFLAGS) -OSS_FUZZ_LDFLAG = $(FUZZING_LDFLAG) -OSS_FUZZ_LIBS = $(FUZZING_LIBS) -lFuzzingEngine -lstdc++ -src_test_fuzz_oss_fuzz_consensus_SOURCES = \ +src_test_fuzz_oss_fuzz_consensus_a_SOURCES = \ $(src_test_fuzz_fuzz_consensus_SOURCES) -src_test_fuzz_oss_fuzz_consensus_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) -src_test_fuzz_oss_fuzz_consensus_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_consensus_LDFLAGS = $(OSS_FUZZ_LDFLAG) -src_test_fuzz_oss_fuzz_consensus_LDADD = $(OSS_FUZZ_LIBS) +src_test_fuzz_oss_fuzz_consensus_a_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) +src_test_fuzz_oss_fuzz_consensus_a_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_descriptor_SOURCES = \ +src_test_fuzz_oss_fuzz_descriptor_a_SOURCES = \ $(src_test_fuzz_fuzz_descriptor_SOURCES) -src_test_fuzz_oss_fuzz_descriptor_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) -src_test_fuzz_oss_fuzz_descriptor_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_descriptor_LDFLAGS = $(OSS_FUZZ_LDFLAG) -src_test_fuzz_oss_fuzz_descriptor_LDADD = $(OSS_FUZZ_LIBS) +src_test_fuzz_oss_fuzz_descriptor_a_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) +src_test_fuzz_oss_fuzz_descriptor_a_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_extrainfo_SOURCES = \ +src_test_fuzz_oss_fuzz_extrainfo_a_SOURCES = \ $(src_test_fuzz_fuzz_extrainfo_SOURCES) -src_test_fuzz_oss_fuzz_extrainfo_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) -src_test_fuzz_oss_fuzz_extrainfo_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_extrainfo_LDFLAGS = $(OSS_FUZZ_LDFLAG) -src_test_fuzz_oss_fuzz_extrainfo_LDADD = $(OSS_FUZZ_LIBS) +src_test_fuzz_oss_fuzz_extrainfo_a_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) +src_test_fuzz_oss_fuzz_extrainfo_a_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_http_SOURCES = \ +src_test_fuzz_oss_fuzz_http_a_SOURCES = \ $(src_test_fuzz_fuzz_http_SOURCES) -src_test_fuzz_oss_fuzz_http_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) -src_test_fuzz_oss_fuzz_http_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_http_LDFLAGS = $(OSS_FUZZ_LDFLAG) -src_test_fuzz_oss_fuzz_http_LDADD = $(OSS_FUZZ_LIBS) +src_test_fuzz_oss_fuzz_http_a_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) +src_test_fuzz_oss_fuzz_http_a_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_hsdescv2_SOURCES = \ +src_test_fuzz_oss_fuzz_hsdescv2_a_SOURCES = \ $(src_test_fuzz_fuzz_hsdescv2_SOURCES) -src_test_fuzz_oss_fuzz_hsdescv2_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) -src_test_fuzz_oss_fuzz_hsdescv2_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_hsdescv2_LDFLAGS = $(OSS_FUZZ_LDFLAG) -src_test_fuzz_oss_fuzz_hsdescv2_LDADD = $(OSS_FUZZ_LIBS) +src_test_fuzz_oss_fuzz_hsdescv2_a_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) +src_test_fuzz_oss_fuzz_hsdescv2_a_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_iptsv2_SOURCES = \ +src_test_fuzz_oss_fuzz_iptsv2_a_SOURCES = \ $(src_test_fuzz_fuzz_iptsv2_SOURCES) -src_test_fuzz_oss_fuzz_iptsv2_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) -src_test_fuzz_oss_fuzz_iptsv2_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_iptsv2_LDFLAGS = $(OSS_FUZZ_LDFLAG) -src_test_fuzz_oss_fuzz_iptsv2_LDADD = $(OSS_FUZZ_LIBS) +src_test_fuzz_oss_fuzz_iptsv2_a_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) +src_test_fuzz_oss_fuzz_iptsv2_a_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_microdesc_SOURCES = \ +src_test_fuzz_oss_fuzz_microdesc_a_SOURCES = \ $(src_test_fuzz_fuzz_microdesc_SOURCES) -src_test_fuzz_oss_fuzz_microdesc_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) -src_test_fuzz_oss_fuzz_microdesc_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_microdesc_LDFLAGS = $(OSS_FUZZ_LDFLAG) -src_test_fuzz_oss_fuzz_microdesc_LDADD = $(OSS_FUZZ_LIBS) +src_test_fuzz_oss_fuzz_microdesc_a_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) +src_test_fuzz_oss_fuzz_microdesc_a_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_vrs_SOURCES = \ +src_test_fuzz_oss_fuzz_vrs_a_a_SOURCES = \ $(src_test_fuzz_fuzz_vrs_SOURCES) -src_test_fuzz_oss_fuzz_vrs_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) -src_test_fuzz_oss_fuzz_vrs_CFLAGS = $(OSS_FUZZ_CFLAGS) -src_test_fuzz_oss_fuzz_vrs_LDFLAGS = $(OSS_FUZZ_LDFLAG) -src_test_fuzz_oss_fuzz_vrs_LDADD = $(OSS_FUZZ_LIBS) +src_test_fuzz_oss_fuzz_vrs_a_a_CPPFLAGS = $(OSS_FUZZ_CPPFLAGS) +src_test_fuzz_oss_fuzz_vrs_a_a_CFLAGS = $(OSS_FUZZ_CFLAGS) OSS_FUZZ_FUZZERS = \ - src/test/fuzz/oss-fuzz-consensus \ - src/test/fuzz/oss-fuzz-descriptor \ - src/test/fuzz/oss-fuzz-extrainfo \ - src/test/fuzz/oss-fuzz-http \ - src/test/fuzz/oss-fuzz-hsdescv2 \ - src/test/fuzz/oss-fuzz-iptsv2 \ - src/test/fuzz/oss-fuzz-microdesc \ - src/test/fuzz/oss-fuzz-vrs + src/test/fuzz/oss-fuzz-consensus.a \ + src/test/fuzz/oss-fuzz-descriptor.a \ + src/test/fuzz/oss-fuzz-extrainfo.a \ + src/test/fuzz/oss-fuzz-http.a \ + src/test/fuzz/oss-fuzz-hsdescv2.a \ + src/test/fuzz/oss-fuzz-iptsv2.a \ + src/test/fuzz/oss-fuzz-microdesc.a \ + src/test/fuzz/oss-fuzz-vrs.a else -OSS_FUZZ_FUZZERS +OSS_FUZZ_FUZZERS = endif -noinst_PROGRAMS += $(FUZZERS) $(LIBFUZZER_FUZZERS) $(OSS_FUZZ_FUZZERS) +noinst_PROGRAMS += $(FUZZERS) $(LIBFUZZER_FUZZERS) +noinst_LIBRARIES += $(OSS_FUZZ_FUZZERS) oss-fuzz-fuzzers: $(OSS_FUZZ_FUZZERS) fuzzers: $(FUZZERS) $(LIBFUZZER_FUZZERS)
[View Less]
1
0
0
0
[tor/master] routerstatus fuzzing
by nickm@torproject.org
30 Jan '17
30 Jan '17
commit 024fa9d4d76d21d1a51b0a362552bcbff4159b3a Author: Nick Mathewson <nickm(a)torproject.org> Date: Sat Dec 31 15:09:11 2016 -0500 routerstatus fuzzing --- src/test/fuzz/fuzz_vrs.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++ src/test/fuzz/include.am | 23 ++++++++++++-- 2 files changed, 98 insertions(+), 3 deletions(-) diff --git a/src/test/fuzz/fuzz_vrs.c b/src/test/fuzz/fuzz_vrs.c new file mode 100644 index 0000000..1c4e5e2 --- /dev/null +++ b/src/test/fuzz/
…
[View More]
fuzz_vrs.c @@ -0,0 +1,78 @@ +/* Copyright (c) 2016, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ +#define ROUTERPARSE_PRIVATE +#define NETWORKSTATUS_PRIVATE +#include "or.h" +#include "routerparse.h" +#include "memarea.h" +#include "microdesc.h" +#include "networkstatus.h" +#include "fuzzing.h" + +static void +mock_dump_desc__nodump(const char *desc, const char *type) +{ + (void)desc; + (void)type; +} + +static networkstatus_t *dummy_vote = NULL; +static memarea_t *area = NULL; + +int +fuzz_init(void) +{ + disable_signature_checking(); + MOCK(dump_desc, mock_dump_desc__nodump); + ed25519_init(); + area = memarea_new(); + dummy_vote = tor_malloc_zero(sizeof(*dummy_vote)); + dummy_vote->known_flags = smartlist_new(); + smartlist_split_string(dummy_vote->known_flags, + "Authority BadExit Exit Fast Guard HSDir " + "NoEdConsensus Running Stable V2Dir Valid", + " ", 0, 0); + return 0; +} + +int +fuzz_cleanup(void) +{ + tor_free(dummy_vote); + return 0; +} + +int +fuzz_main(const uint8_t *data, size_t sz) +{ + const char *str = tor_memdup_nulterm(data, sz), *s; + routerstatus_t *rs_ns = NULL, *rs_md = NULL, *rs_vote = NULL; + vote_routerstatus_t *vrs = tor_malloc_zero(sizeof(*vrs)); + smartlist_t *tokens = smartlist_new(); + + s = str; + rs_ns = routerstatus_parse_entry_from_string(area, &s, tokens, + NULL, NULL, 26, FLAV_NS); + tor_assert(smartlist_len(tokens) == 0); + + s = str; + rs_md = routerstatus_parse_entry_from_string(area, &s, tokens, + NULL, NULL, 26, FLAV_MICRODESC); + tor_assert(smartlist_len(tokens) == 0); + + s = str; + rs_vote = routerstatus_parse_entry_from_string(area, &s, tokens, + dummy_vote, vrs, 26, FLAV_NS); + tor_assert(smartlist_len(tokens) == 0); + + log_debug(LD_GENERAL, + "ns=%p, md=%p, vote=%p", rs_ns, rs_md, rs_vote); + + routerstatus_free(rs_md); + routerstatus_free(rs_ns); + vote_routerstatus_free(vrs); + memarea_clear(area); + smartlist_free(tokens); + return 0; +} + diff --git a/src/test/fuzz/include.am b/src/test/fuzz/include.am index c716889..2bfdaf3 100644 --- a/src/test/fuzz/include.am +++ b/src/test/fuzz/include.am @@ -79,6 +79,14 @@ src_test_fuzz_fuzz_microdesc_CFLAGS = $(FUZZING_CFLAGS) src_test_fuzz_fuzz_microdesc_LDFLAGS = $(FUZZING_LDFLAG) src_test_fuzz_fuzz_microdesc_LDADD = $(FUZZING_LIBS) +src_test_fuzz_fuzz_vrs_SOURCES = \ + src/test/fuzz/fuzzing_common.c \ + src/test/fuzz/fuzz_vrs.c +src_test_fuzz_fuzz_vrs_CPPFLAGS = $(FUZZING_CPPFLAGS) +src_test_fuzz_fuzz_vrs_CFLAGS = $(FUZZING_CFLAGS) +src_test_fuzz_fuzz_vrs_LDFLAGS = $(FUZZING_LDFLAG) +src_test_fuzz_fuzz_vrs_LDADD = $(FUZZING_LIBS) + FUZZERS = \ src/test/fuzz/fuzz-consensus \ src/test/fuzz/fuzz-descriptor \ @@ -86,7 +94,9 @@ FUZZERS = \ src/test/fuzz/fuzz-http \ src/test/fuzz/fuzz-hsdescv2 \ src/test/fuzz/fuzz-iptsv2 \ - src/test/fuzz/fuzz-microdesc + src/test/fuzz/fuzz-microdesc \ + src/test/fuzz/fuzz-vrs + LIBFUZZER = /home/nickm/build/libfuzz/libFuzzer.a LIBFUZZER_CPPFLAGS = $(FUZZING_CPPFLAGS) -DLLVM_FUZZ @@ -144,6 +154,13 @@ src_test_fuzz_lf_fuzz_microdesc_CFLAGS = $(LIBFUZZER_CFLAGS) src_test_fuzz_lf_fuzz_microdesc_LDFLAGS = $(LIBFUZZER_LDFLAG) src_test_fuzz_lf_fuzz_microdesc_LDADD = $(LIBFUZZER_LIBS) +src_test_fuzz_lf_fuzz_vrs_SOURCES = \ + $(src_test_fuzz_fuzz_vrs_SOURCES) +src_test_fuzz_lf_fuzz_vrs_CPPFLAGS = $(LIBFUZZER_CPPFLAGS) +src_test_fuzz_lf_fuzz_vrs_CFLAGS = $(LIBFUZZER_CFLAGS) +src_test_fuzz_lf_fuzz_vrs_LDFLAGS = $(LIBFUZZER_LDFLAG) +src_test_fuzz_lf_fuzz_vrs_LDADD = $(LIBFUZZER_LIBS) + LIBFUZZER_FUZZERS = \ src/test/fuzz/lf-fuzz-consensus \ src/test/fuzz/lf-fuzz-descriptor \ @@ -151,7 +168,8 @@ LIBFUZZER_FUZZERS = \ src/test/fuzz/lf-fuzz-http \ src/test/fuzz/lf-fuzz-hsdescv2 \ src/test/fuzz/lf-fuzz-iptsv2 \ - src/test/fuzz/lf-fuzz-microdesc + src/test/fuzz/lf-fuzz-microdesc \ + src/test/fuzz/lf-fuzz-vrs else LIBFUZZER_FUZZERS = @@ -160,4 +178,3 @@ endif noinst_PROGRAMS += $(FUZZERS) $(LIBFUZZER_FUZZERS) fuzzers: $(FUZZERS) $(LIBFUZZER_FUZZERS) -
[View Less]
1
0
0
0
[tor/master] Add libfuzzer support.
by nickm@torproject.org
30 Jan '17
30 Jan '17
commit eb414a08a9272090e6b35080c2ac8b7415a83094 Author: Nick Mathewson <nickm(a)torproject.org> Date: Mon Dec 19 15:17:42 2016 -0500 Add libfuzzer support. --- .gitignore | 1 + Makefile.am | 4 ++ configure.ac | 6 ++- src/test/fuzz/fuzzing_common.c | 45 +++++++++++-------- src/test/fuzz/include.am | 99 +++++++++++++++++++++++++++++++++++++++++- 5 files changed, 135 insertions(+), 20 deletions(-) diff --git a/.
…
[View More]
gitignore b/.gitignore index 1491b11..7e421d8 100644 --- a/.gitignore +++ b/.gitignore @@ -198,6 +198,7 @@ uptime-*.json # /src/test/fuzz /src/test/fuzz/fuzz-* +/src/test/fuzz/lf-fuzz-* # /src/tools/ /src/tools/tor-checkkey diff --git a/Makefile.am b/Makefile.am index 5204830..785cf34 100644 --- a/Makefile.am +++ b/Makefile.am @@ -55,6 +55,10 @@ TEST_CPPFLAGS=-DTOR_UNIT_TESTS TEST_NETWORK_FLAGS=--hs-multi-client 1 endif +if LIBFUZZER_ENABLED +TEST_CFLAGS += -fsanitize-coverage=edge -fsanitize-coverage=trace-cmp +endif + TEST_NETWORK_ALL_LOG_DIR=$(top_builddir)/test_network_log TEST_NETWORK_ALL_DRIVER_FLAGS=--color-tests yes diff --git a/configure.ac b/configure.ac index 721f5cd..784b3cd 100644 --- a/configure.ac +++ b/configure.ac @@ -49,6 +49,8 @@ AC_ARG_ENABLE(asserts-in-tests, AS_HELP_STRING(--disable-asserts-in-tests, [disable tor_assert() calls in the unit tests, for branch coverage])) AC_ARG_ENABLE(system-torrc, AS_HELP_STRING(--disable-system-torrc, [don't look for a system-wide torrc file])) +AC_ARG_ENABLE(libfuzzer, + AS_HELP_STRING(--libfuzzer, [build extra fuzzers based on 'libfuzzer'])) if test "x$enable_coverage" != "xyes" -a "x$enable_asserts_in_tests" = "xno" ; then AC_MSG_ERROR([Can't disable assertions outside of coverage build]) @@ -57,6 +59,7 @@ fi AM_CONDITIONAL(UNITTESTS_ENABLED, test "x$enable_unittests" != "xno") AM_CONDITIONAL(COVERAGE_ENABLED, test "x$enable_coverage" = "xyes") AM_CONDITIONAL(DISABLE_ASSERTS_IN_UNIT_TESTS, test "x$enable_asserts_in_tests" = "xno") +AM_CONDITIONAL(LIBFUZZER_ENABLED, test "x$enable_libfuzzer" = "xyes") if test "$enable_static_tor" = "yes"; then enable_static_libevent="yes"; @@ -735,6 +738,7 @@ CFLAGS_FWRAPV= CFLAGS_ASAN= CFLAGS_UBSAN= + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [ #if !defined(__clang__) #error @@ -758,7 +762,7 @@ m4_ifdef([AS_VAR_IF],[ AS_VAR_POPDEF([can_compile]) TOR_CHECK_CFLAGS(-Wstack-protector) TOR_CHECK_CFLAGS(--param ssp-buffer-size=1) - if test "$bwin32" = "false"; then + if test "$bwin32" = "false" && test "$enable_libfuzzer" != "yes"; then TOR_CHECK_CFLAGS(-fPIE) TOR_CHECK_LDFLAGS(-pie, "$all_ldflags_for_check", "$all_libs_for_check") fi diff --git a/src/test/fuzz/fuzzing_common.c b/src/test/fuzz/fuzzing_common.c index 57c3cf5..e4920d3 100644 --- a/src/test/fuzz/fuzzing_common.c +++ b/src/test/fuzz/fuzzing_common.c @@ -92,14 +92,38 @@ disable_signature_checking(void) MOCK(ed25519_impl_spot_check, mock_ed25519_impl_spot_check__nocheck); } +static void +global_init(void) +{ + tor_threads_init(); + { + struct sipkey sipkey = { 1337, 7331 }; + siphash_set_global_key(&sipkey); + } + + /* Initialise logging first */ + init_logging(1); + configure_backtrace_handler(get_version()); + + /* set up the options. */ + mock_options = tor_malloc(sizeof(or_options_t)); + MOCK(get_options, mock_get_options); + + /* Make BUG() and nonfatal asserts crash */ + tor_set_failed_assertion_callback(abort); +} + #ifdef LLVM_FUZZ +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size); int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { static int initialized = 0; if (!initialized) { + global_init(); if (fuzz_init() < 0) abort(); + initialized = 1; } return fuzz_main(Data, Size); @@ -112,23 +136,11 @@ main(int argc, char **argv) { size_t size; - tor_threads_init(); - { - struct sipkey sipkey = { 1337, 7331 }; - siphash_set_global_key(&sipkey); - } + global_init(); /* Disable logging by default to speed up fuzzing. */ int loglevel = LOG_ERR; - /* Initialise logging first */ - init_logging(1); - configure_backtrace_handler(get_version()); - - /* set up the options. */ - mock_options = tor_malloc(sizeof(or_options_t)); - MOCK(get_options, mock_get_options); - for (int i = 1; i < argc; ++i) { if (!strcmp(argv[i], "--warn")) { loglevel = LOG_WARN; @@ -150,9 +162,6 @@ main(int argc, char **argv) add_stream_log(&s, "", fileno(stdout)); } - /* Make BUG() and nonfatal asserts crash */ - tor_set_failed_assertion_callback(abort); - if (fuzz_init() < 0) abort(); @@ -164,8 +173,10 @@ main(int argc, char **argv) #define MAX_FUZZ_SIZE (128*1024) char *input = read_file_to_str_until_eof(0, MAX_FUZZ_SIZE, &size); tor_assert(input); - fuzz_main((const uint8_t*)input, size); + char *raw = tor_memdup(input, size); /* Because input is nul-terminated */ tor_free(input); + fuzz_main((const uint8_t*)raw, size); + tor_free(raw); if (fuzz_cleanup() < 0) abort(); diff --git a/src/test/fuzz/include.am b/src/test/fuzz/include.am index bfe3808..c716889 100644 --- a/src/test/fuzz/include.am +++ b/src/test/fuzz/include.am @@ -23,6 +23,14 @@ FUZZING_LIBS = \ noinst_HEADERS += \ src/test/fuzz/fuzzing.h +src_test_fuzz_fuzz_consensus_SOURCES = \ + src/test/fuzz/fuzzing_common.c \ + src/test/fuzz/fuzz_consensus.c +src_test_fuzz_fuzz_consensus_CPPFLAGS = $(FUZZING_CPPFLAGS) +src_test_fuzz_fuzz_consensus_CFLAGS = $(FUZZING_CFLAGS) +src_test_fuzz_fuzz_consensus_LDFLAGS = $(FUZZING_LDFLAG) +src_test_fuzz_fuzz_consensus_LDADD = $(FUZZING_LIBS) + src_test_fuzz_fuzz_descriptor_SOURCES = \ src/test/fuzz/fuzzing_common.c \ src/test/fuzz/fuzz_descriptor.c @@ -39,6 +47,22 @@ src_test_fuzz_fuzz_http_CFLAGS = $(FUZZING_CFLAGS) src_test_fuzz_fuzz_http_LDFLAGS = $(FUZZING_LDFLAG) src_test_fuzz_fuzz_http_LDADD = $(FUZZING_LIBS) +src_test_fuzz_fuzz_hsdescv2_SOURCES = \ + src/test/fuzz/fuzzing_common.c \ + src/test/fuzz/fuzz_hsdescv2.c +src_test_fuzz_fuzz_hsdescv2_CPPFLAGS = $(FUZZING_CPPFLAGS) +src_test_fuzz_fuzz_hsdescv2_CFLAGS = $(FUZZING_CFLAGS) +src_test_fuzz_fuzz_hsdescv2_LDFLAGS = $(FUZZING_LDFLAG) +src_test_fuzz_fuzz_hsdescv2_LDADD = $(FUZZING_LIBS) + +src_test_fuzz_fuzz_iptsv2_SOURCES = \ + src/test/fuzz/fuzzing_common.c \ + src/test/fuzz/fuzz_iptsv2.c +src_test_fuzz_fuzz_iptsv2_CPPFLAGS = $(FUZZING_CPPFLAGS) +src_test_fuzz_fuzz_iptsv2_CFLAGS = $(FUZZING_CFLAGS) +src_test_fuzz_fuzz_iptsv2_LDFLAGS = $(FUZZING_LDFLAG) +src_test_fuzz_fuzz_iptsv2_LDADD = $(FUZZING_LIBS) + src_test_fuzz_fuzz_extrainfo_SOURCES = \ src/test/fuzz/fuzzing_common.c \ src/test/fuzz/fuzz_extrainfo.c @@ -56,13 +80,84 @@ src_test_fuzz_fuzz_microdesc_LDFLAGS = $(FUZZING_LDFLAG) src_test_fuzz_fuzz_microdesc_LDADD = $(FUZZING_LIBS) FUZZERS = \ + src/test/fuzz/fuzz-consensus \ src/test/fuzz/fuzz-descriptor \ src/test/fuzz/fuzz-extrainfo \ src/test/fuzz/fuzz-http \ + src/test/fuzz/fuzz-hsdescv2 \ + src/test/fuzz/fuzz-iptsv2 \ src/test/fuzz/fuzz-microdesc -noinst_PROGRAMS += $(FUZZERS) -fuzzers: $(FUZZERS) +LIBFUZZER = /home/nickm/build/libfuzz/libFuzzer.a +LIBFUZZER_CPPFLAGS = $(FUZZING_CPPFLAGS) -DLLVM_FUZZ +LIBFUZZER_CFLAGS = $(FUZZING_CFLAGS) +LIBFUZZER_LDFLAG = $(FUZZING_LDFLAG) +LIBFUZZER_LIBS = $(FUZZING_LIBS) $(LIBFUZZER) -lstdc++ + +if LIBFUZZER_ENABLED +src_test_fuzz_lf_fuzz_consensus_SOURCES = \ + $(src_test_fuzz_fuzz_consensus_SOURCES) +src_test_fuzz_lf_fuzz_consensus_CPPFLAGS = $(LIBFUZZER_CPPFLAGS) +src_test_fuzz_lf_fuzz_consensus_CFLAGS = $(LIBFUZZER_CFLAGS) +src_test_fuzz_lf_fuzz_consensus_LDFLAGS = $(LIBFUZZER_LDFLAG) +src_test_fuzz_lf_fuzz_consensus_LDADD = $(LIBFUZZER_LIBS) + +src_test_fuzz_lf_fuzz_descriptor_SOURCES = \ + $(src_test_fuzz_fuzz_descriptor_SOURCES) +src_test_fuzz_lf_fuzz_descriptor_CPPFLAGS = $(LIBFUZZER_CPPFLAGS) +src_test_fuzz_lf_fuzz_descriptor_CFLAGS = $(LIBFUZZER_CFLAGS) +src_test_fuzz_lf_fuzz_descriptor_LDFLAGS = $(LIBFUZZER_LDFLAG) +src_test_fuzz_lf_fuzz_descriptor_LDADD = $(LIBFUZZER_LIBS) + +src_test_fuzz_lf_fuzz_extrainfo_SOURCES = \ + $(src_test_fuzz_fuzz_extrainfo_SOURCES) +src_test_fuzz_lf_fuzz_extrainfo_CPPFLAGS = $(LIBFUZZER_CPPFLAGS) +src_test_fuzz_lf_fuzz_extrainfo_CFLAGS = $(LIBFUZZER_CFLAGS) +src_test_fuzz_lf_fuzz_extrainfo_LDFLAGS = $(LIBFUZZER_LDFLAG) +src_test_fuzz_lf_fuzz_extrainfo_LDADD = $(LIBFUZZER_LIBS) + +src_test_fuzz_lf_fuzz_http_SOURCES = \ + $(src_test_fuzz_fuzz_http_SOURCES) +src_test_fuzz_lf_fuzz_http_CPPFLAGS = $(LIBFUZZER_CPPFLAGS) +src_test_fuzz_lf_fuzz_http_CFLAGS = $(LIBFUZZER_CFLAGS) +src_test_fuzz_lf_fuzz_http_LDFLAGS = $(LIBFUZZER_LDFLAG) +src_test_fuzz_lf_fuzz_http_LDADD = $(LIBFUZZER_LIBS) + +src_test_fuzz_lf_fuzz_hsdescv2_SOURCES = \ + $(src_test_fuzz_fuzz_hsdescv2_SOURCES) +src_test_fuzz_lf_fuzz_hsdescv2_CPPFLAGS = $(LIBFUZZER_CPPFLAGS) +src_test_fuzz_lf_fuzz_hsdescv2_CFLAGS = $(LIBFUZZER_CFLAGS) +src_test_fuzz_lf_fuzz_hsdescv2_LDFLAGS = $(LIBFUZZER_LDFLAG) +src_test_fuzz_lf_fuzz_hsdescv2_LDADD = $(LIBFUZZER_LIBS) + +src_test_fuzz_lf_fuzz_iptsv2_SOURCES = \ + $(src_test_fuzz_fuzz_iptsv2_SOURCES) +src_test_fuzz_lf_fuzz_iptsv2_CPPFLAGS = $(LIBFUZZER_CPPFLAGS) +src_test_fuzz_lf_fuzz_iptsv2_CFLAGS = $(LIBFUZZER_CFLAGS) +src_test_fuzz_lf_fuzz_iptsv2_LDFLAGS = $(LIBFUZZER_LDFLAG) +src_test_fuzz_lf_fuzz_iptsv2_LDADD = $(LIBFUZZER_LIBS) + +src_test_fuzz_lf_fuzz_microdesc_SOURCES = \ + $(src_test_fuzz_fuzz_microdesc_SOURCES) +src_test_fuzz_lf_fuzz_microdesc_CPPFLAGS = $(LIBFUZZER_CPPFLAGS) +src_test_fuzz_lf_fuzz_microdesc_CFLAGS = $(LIBFUZZER_CFLAGS) +src_test_fuzz_lf_fuzz_microdesc_LDFLAGS = $(LIBFUZZER_LDFLAG) +src_test_fuzz_lf_fuzz_microdesc_LDADD = $(LIBFUZZER_LIBS) + +LIBFUZZER_FUZZERS = \ + src/test/fuzz/lf-fuzz-consensus \ + src/test/fuzz/lf-fuzz-descriptor \ + src/test/fuzz/lf-fuzz-extrainfo \ + src/test/fuzz/lf-fuzz-http \ + src/test/fuzz/lf-fuzz-hsdescv2 \ + src/test/fuzz/lf-fuzz-iptsv2 \ + src/test/fuzz/lf-fuzz-microdesc + +else +LIBFUZZER_FUZZERS = +endif +noinst_PROGRAMS += $(FUZZERS) $(LIBFUZZER_FUZZERS) +fuzzers: $(FUZZERS) $(LIBFUZZER_FUZZERS)
[View Less]
1
0
0
0
← Newer
1
...
9
10
11
12
13
14
15
...
180
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
Results per page:
10
25
50
100
200