mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 23:53:32 +01:00
Add fuzzing wrapper for fetch_from_buf_socks()
This commit is contained in:
parent
7556933537
commit
2d0e1cef20
@ -12,6 +12,7 @@ FUZZERS = """
|
|||||||
http-connect
|
http-connect
|
||||||
iptsv2
|
iptsv2
|
||||||
microdesc
|
microdesc
|
||||||
|
socks
|
||||||
vrs
|
vrs
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
50
src/test/fuzz/fuzz_socks.c
Normal file
50
src/test/fuzz/fuzz_socks.c
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/* Copyright (c) 2016-2018, The Tor Project, Inc. */
|
||||||
|
/* See LICENSE for licensing information */
|
||||||
|
|
||||||
|
#include "orconfig.h"
|
||||||
|
|
||||||
|
#define BUFFERS_PRIVATE
|
||||||
|
#include "core/or/or.h"
|
||||||
|
|
||||||
|
#include "lib/container/buffers.h"
|
||||||
|
#include "lib/err/backtrace.h"
|
||||||
|
#include "lib/log/log.h"
|
||||||
|
#include "core/proto/proto_socks.h"
|
||||||
|
#include "feature/client/addressmap.h"
|
||||||
|
|
||||||
|
#include "test/fuzz/fuzzing.h"
|
||||||
|
|
||||||
|
int
|
||||||
|
fuzz_init(void)
|
||||||
|
{
|
||||||
|
addressmap_init();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
fuzz_cleanup(void)
|
||||||
|
{
|
||||||
|
addressmap_free_all();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
fuzz_main(const uint8_t *stdin_buf, size_t data_size)
|
||||||
|
{
|
||||||
|
buf_t *buffer = buf_new_with_data((char*)stdin_buf, data_size);
|
||||||
|
if (!buffer) {
|
||||||
|
tor_assert(data_size==0);
|
||||||
|
buffer = buf_new();
|
||||||
|
}
|
||||||
|
|
||||||
|
socks_request_t *request = socks_request_new();
|
||||||
|
|
||||||
|
int r = fetch_from_buf_socks(buffer, request, 0, 0);
|
||||||
|
log_info(LD_GENERAL, "Socks request status: %d", r);
|
||||||
|
|
||||||
|
/* Reset. */
|
||||||
|
buf_free(buffer);
|
||||||
|
socks_request_free(request);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -17,7 +17,7 @@ FUZZING_LIBS = \
|
|||||||
@TOR_ZSTD_LIBS@
|
@TOR_ZSTD_LIBS@
|
||||||
|
|
||||||
oss-fuzz-prereqs: \
|
oss-fuzz-prereqs: \
|
||||||
$(TOR_INTERNAL_TESTING_LIBS)
|
$(TOR_INTERNAL_TESTING_LIBS)
|
||||||
|
|
||||||
noinst_HEADERS += \
|
noinst_HEADERS += \
|
||||||
src/test/fuzz/fuzzing.h
|
src/test/fuzz/fuzzing.h
|
||||||
@ -120,6 +120,14 @@ src_test_fuzz_fuzz_microdesc_CFLAGS = $(FUZZING_CFLAGS)
|
|||||||
src_test_fuzz_fuzz_microdesc_LDFLAGS = $(FUZZING_LDFLAG)
|
src_test_fuzz_fuzz_microdesc_LDFLAGS = $(FUZZING_LDFLAG)
|
||||||
src_test_fuzz_fuzz_microdesc_LDADD = $(FUZZING_LIBS)
|
src_test_fuzz_fuzz_microdesc_LDADD = $(FUZZING_LIBS)
|
||||||
|
|
||||||
|
src_test_fuzz_fuzz_socks_SOURCES = \
|
||||||
|
src/test/fuzz/fuzzing_common.c \
|
||||||
|
src/test/fuzz/fuzz_socks.c
|
||||||
|
src_test_fuzz_fuzz_socks_CPPFLAGS = $(FUZZING_CPPFLAGS)
|
||||||
|
src_test_fuzz_fuzz_socks_CFLAGS = $(FUZZING_CFLAGS)
|
||||||
|
src_test_fuzz_fuzz_socks_LDFLAGS = $(FUZZING_LDFLAG)
|
||||||
|
src_test_fuzz_fuzz_socks_LDADD = $(FUZZING_LIBS)
|
||||||
|
|
||||||
src_test_fuzz_fuzz_vrs_SOURCES = \
|
src_test_fuzz_fuzz_vrs_SOURCES = \
|
||||||
src/test/fuzz/fuzzing_common.c \
|
src/test/fuzz/fuzzing_common.c \
|
||||||
src/test/fuzz/fuzz_vrs.c
|
src/test/fuzz/fuzz_vrs.c
|
||||||
@ -140,6 +148,7 @@ FUZZERS = \
|
|||||||
src/test/fuzz/fuzz-http-connect \
|
src/test/fuzz/fuzz-http-connect \
|
||||||
src/test/fuzz/fuzz-iptsv2 \
|
src/test/fuzz/fuzz-iptsv2 \
|
||||||
src/test/fuzz/fuzz-microdesc \
|
src/test/fuzz/fuzz-microdesc \
|
||||||
|
src/test/fuzz/fuzz-socks \
|
||||||
src/test/fuzz/fuzz-vrs
|
src/test/fuzz/fuzz-vrs
|
||||||
|
|
||||||
# ===== libfuzzer
|
# ===== libfuzzer
|
||||||
@ -222,6 +231,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_LDFLAGS = $(LIBFUZZER_LDFLAG)
|
||||||
src_test_fuzz_lf_fuzz_microdesc_LDADD = $(LIBFUZZER_LIBS)
|
src_test_fuzz_lf_fuzz_microdesc_LDADD = $(LIBFUZZER_LIBS)
|
||||||
|
|
||||||
|
src_test_fuzz_lf_fuzz_socks_SOURCES = \
|
||||||
|
$(src_test_fuzz_fuzz_socks_SOURCES)
|
||||||
|
src_test_fuzz_lf_fuzz_socks_CPPFLAGS = $(LIBFUZZER_CPPFLAGS)
|
||||||
|
src_test_fuzz_lf_fuzz_socks_CFLAGS = $(LIBFUZZER_CFLAGS)
|
||||||
|
src_test_fuzz_lf_fuzz_socks_LDFLAGS = $(LIBFUZZER_LDFLAG)
|
||||||
|
src_test_fuzz_lf_fuzz_socks_LDADD = $(LIBFUZZER_LIBS)
|
||||||
|
|
||||||
src_test_fuzz_lf_fuzz_vrs_SOURCES = \
|
src_test_fuzz_lf_fuzz_vrs_SOURCES = \
|
||||||
$(src_test_fuzz_fuzz_vrs_SOURCES)
|
$(src_test_fuzz_fuzz_vrs_SOURCES)
|
||||||
src_test_fuzz_lf_fuzz_vrs_CPPFLAGS = $(LIBFUZZER_CPPFLAGS)
|
src_test_fuzz_lf_fuzz_vrs_CPPFLAGS = $(LIBFUZZER_CPPFLAGS)
|
||||||
@ -241,6 +257,7 @@ LIBFUZZER_FUZZERS = \
|
|||||||
src/test/fuzz/lf-fuzz-http-connect \
|
src/test/fuzz/lf-fuzz-http-connect \
|
||||||
src/test/fuzz/lf-fuzz-iptsv2 \
|
src/test/fuzz/lf-fuzz-iptsv2 \
|
||||||
src/test/fuzz/lf-fuzz-microdesc \
|
src/test/fuzz/lf-fuzz-microdesc \
|
||||||
|
src/test/fuzz/lf-fuzz-socks \
|
||||||
src/test/fuzz/lf-fuzz-vrs
|
src/test/fuzz/lf-fuzz-vrs
|
||||||
|
|
||||||
else
|
else
|
||||||
@ -305,6 +322,11 @@ src_test_fuzz_liboss_fuzz_microdesc_a_SOURCES = \
|
|||||||
src_test_fuzz_liboss_fuzz_microdesc_a_CPPFLAGS = $(LIBOSS_FUZZ_CPPFLAGS)
|
src_test_fuzz_liboss_fuzz_microdesc_a_CPPFLAGS = $(LIBOSS_FUZZ_CPPFLAGS)
|
||||||
src_test_fuzz_liboss_fuzz_microdesc_a_CFLAGS = $(LIBOSS_FUZZ_CFLAGS)
|
src_test_fuzz_liboss_fuzz_microdesc_a_CFLAGS = $(LIBOSS_FUZZ_CFLAGS)
|
||||||
|
|
||||||
|
src_test_fuzz_liboss_fuzz_socks_a_SOURCES = \
|
||||||
|
$(src_test_fuzz_fuzz_socks_SOURCES)
|
||||||
|
src_test_fuzz_liboss_fuzz_socks_a_CPPFLAGS = $(LIBOSS_FUZZ_CPPFLAGS)
|
||||||
|
src_test_fuzz_liboss_fuzz_socks_a_CFLAGS = $(LIBOSS_FUZZ_CFLAGS)
|
||||||
|
|
||||||
src_test_fuzz_liboss_fuzz_vrs_a_SOURCES = \
|
src_test_fuzz_liboss_fuzz_vrs_a_SOURCES = \
|
||||||
$(src_test_fuzz_fuzz_vrs_SOURCES)
|
$(src_test_fuzz_fuzz_vrs_SOURCES)
|
||||||
src_test_fuzz_liboss_fuzz_vrs_a_CPPFLAGS = $(LIBOSS_FUZZ_CPPFLAGS)
|
src_test_fuzz_liboss_fuzz_vrs_a_CPPFLAGS = $(LIBOSS_FUZZ_CPPFLAGS)
|
||||||
@ -322,6 +344,7 @@ OSS_FUZZ_FUZZERS = \
|
|||||||
src/test/fuzz/liboss-fuzz-http-connect.a \
|
src/test/fuzz/liboss-fuzz-http-connect.a \
|
||||||
src/test/fuzz/liboss-fuzz-iptsv2.a \
|
src/test/fuzz/liboss-fuzz-iptsv2.a \
|
||||||
src/test/fuzz/liboss-fuzz-microdesc.a \
|
src/test/fuzz/liboss-fuzz-microdesc.a \
|
||||||
|
src/test/fuzz/liboss-fuzz-socks.a \
|
||||||
src/test/fuzz/liboss-fuzz-vrs.a
|
src/test/fuzz/liboss-fuzz-vrs.a
|
||||||
|
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user