diff options
-rw-r--r-- | .travis.yml | 16 | ||||
-rw-r--r-- | example/Makefile.in | 6 | ||||
-rw-r--r-- | example/ndpiReader.c | 4 | ||||
-rw-r--r-- | example/reader_util.c | 14 | ||||
-rw-r--r-- | example/reader_util.h | 5 | ||||
-rw-r--r-- | fuzz/fuzz_ndpi_reader.c | 2 |
6 files changed, 25 insertions, 22 deletions
diff --git a/.travis.yml b/.travis.yml index 406420d3a..789e0e196 100644 --- a/.travis.yml +++ b/.travis.yml @@ -76,7 +76,7 @@ matrix: - libpcap-dev - autogen env: - - MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" + - MATRIX_EVAL="CC=gcc-8" - os: linux compiler: gcc-9 @@ -89,7 +89,7 @@ matrix: - libpcap-dev - autogen env: - - MATRIX_EVAL="CC=gcc-9 && CXX=g++-9" + - MATRIX_EVAL="CC=gcc-9" - os: linux compiler: clang-8 @@ -103,7 +103,7 @@ matrix: - libpcap-dev - autogen env: - - MATRIX_EVAL="CC=clang-8 && CXX=clang++-8" + - MATRIX_EVAL="CC=clang-8" - os: linux compiler: clang-7 @@ -117,10 +117,10 @@ matrix: - libpcap-dev - autogen env: - - MATRIX_EVAL="CC=clang-7 && CXX=clang++-7" + - MATRIX_EVAL="CC=clang-7" - name: fuzza - env: CXXFLAGS="-g -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize=fuzzer-no-link" CFLAGS="-g -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize=fuzzer-no-link" LDFLAGS="-g -fsanitize=address" QA_FUZZ=asan CC=clang-7 && CXX=clang++-7 ASAN_SYMBOLIZER_PATH=/usr/local/clang-7.0.0/bin/llvm-symbolizer + env: CFLAGS="-g3 -O0 -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION" LDFLAGS="-g3 -O0" QA_FUZZ=asan CC=clang-7 && ASAN_SYMBOLIZER_PATH=/usr/local/clang-7.0.0/bin/llvm-symbolizer os: linux compiler: clang-7 addons: @@ -133,7 +133,7 @@ matrix: - libpcap-dev - autogen - name: fuzzm - env: CXXFLAGS="-g -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=memory -fsanitize=fuzzer-no-link" CFLAGS="-g -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=memory -fsanitize=fuzzer-no-link" LDFLAGS="-g -fsanitize=memory" QA_FUZZ=msan CC=clang-7 && CXX=clang++-7 MSAN_SYMBOLIZER_PATH=/usr/local/clang-7.0.0/bin/llvm-symbolizer + env: CFLAGS="-g3 -O0 -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=memory -fsanitize=fuzzer-no-link" LDFLAGS="-g3 -O0 -fsanitize=memory" QA_FUZZ=msan CC=clang-7 && MSAN_SYMBOLIZER_PATH=/usr/local/clang-7.0.0/bin/llvm-symbolizer os: linux compiler: clang-7 addons: @@ -146,7 +146,7 @@ matrix: - libpcap-dev - autogen - name: fuzzu - env: CXXFLAGS="-g -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=undefined -fsanitize=fuzzer-no-link" CFLAGS="-g -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=undefined -fno-sanitize-recover=undefined,integer -fsanitize=fuzzer-no-link" LDFLAGS="-g -fsanitize=undefined" QA_FUZZ=ubsan CC=clang-7 && CXX=clang++-7 + env: CFLAGS="-g3 -O0 -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION" LDFLAGS="-g3 -O0" QA_FUZZ=ubsan CC=clang-7 os: linux compiler: clang-7 addons: @@ -168,7 +168,7 @@ before_script: # - lcov --directory . --zerocounters script: - - if [ -n "$QA_FUZZ" ]; then ./configure --enable-fuzztargets ; else ./configure ; fi + - if [ -n "$QA_FUZZ" -a "$QA_FUZZ" != "msan" ]; then ./configure --enable-fuzztargets ; else ./configure ; fi - make #after_script: diff --git a/example/Makefile.in b/example/Makefile.in index d71ce3f01..df7885166 100644 --- a/example/Makefile.in +++ b/example/Makefile.in @@ -11,14 +11,14 @@ PREFIX?=@prefix@ all: ndpiReader @DPDK_TARGET@ -EXECUTABLE_SOURCES := ndpiReader.c +EXECUTABLE_SOURCES := ndpiReader.c ndpiSimpleIntegration.c COMMON_SOURCES := $(filter-out $(EXECUTABLE_SOURCES),$(wildcard *.c )) libndpiReader.a: $(COMMON_SOURCES:%.c=%.o) $(LIBNDPI) ar rsv libndpiReader.a $(COMMON_SOURCES:%.c=%.o) -ndpiReader: libndpiReader.a $(LIBNDPI) $(EXECUTABLE_SOURCES:%.c=%.o) - $(CC) $(CFLAGS) $(EXECUTABLE_SOURCES:%.c=%.o) libndpiReader.a -o $@ $(LDFLAGS) +ndpiReader: libndpiReader.a $(LIBNDPI) ndpiReader.o + $(CC) $(CFLAGS) ndpiReader.o libndpiReader.a -o $@ $(LDFLAGS) ndpiSimpleIntegration: ndpiSimpleIntegration.o $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) diff --git a/example/ndpiReader.c b/example/ndpiReader.c index 58f2ad366..02a4b61de 100644 --- a/example/ndpiReader.c +++ b/example/ndpiReader.c @@ -1420,7 +1420,7 @@ static void node_proto_guess_walker(const void *node, ndpi_VISIT which, int dept flow->ndpi_flow, enable_protocol_guess, &proto_guessed); } - process_ndpi_collected_info(ndpi_thread_info[thread_id].workflow, flow); + process_ndpi_collected_info(ndpi_thread_info[thread_id].workflow, flow, csv_fp); proto = flow->detected_protocol.app_protocol ? flow->detected_protocol.app_protocol : flow->detected_protocol.master_protocol; @@ -2946,7 +2946,7 @@ static void ndpi_process_packet(u_char *args, uint8_t *packet_checked = malloc(header->caplen); memcpy(packet_checked, packet, header->caplen); - p = ndpi_workflow_process_packet(ndpi_thread_info[thread_id].workflow, header, packet_checked); + p = ndpi_workflow_process_packet(ndpi_thread_info[thread_id].workflow, header, packet_checked, csv_fp); if(!pcap_start.tv_sec) pcap_start.tv_sec = header->ts.tv_sec, pcap_start.tv_usec = header->ts.tv_usec; pcap_end.tv_sec = header->ts.tv_sec, pcap_end.tv_usec = header->ts.tv_usec; diff --git a/example/reader_util.c b/example/reader_util.c index c07cadeff..55dc0c667 100644 --- a/example/reader_util.c +++ b/example/reader_util.c @@ -89,7 +89,6 @@ extern u_int8_t enable_protocol_guess, enable_joy_stats, enable_payload_analyzer; extern u_int8_t verbose, human_readeable_string_len; extern u_int8_t max_num_udp_dissected_pkts /* 8 */, max_num_tcp_dissected_pkts /* 10 */; -extern FILE *csv_fp; static u_int32_t flow_id = 0; /* ****************************************************** */ @@ -1022,7 +1021,7 @@ void correct_csv_data_field(char* data) { /* ****************************************************** */ -void process_ndpi_collected_info(struct ndpi_workflow * workflow, struct ndpi_flow_info *flow) { +void process_ndpi_collected_info(struct ndpi_workflow * workflow, struct ndpi_flow_info *flow, FILE * csv_fp) { u_int i; if(!flow->ndpi_flow) return; @@ -1290,7 +1289,8 @@ static struct ndpi_proto packet_processing(struct ndpi_workflow * workflow, u_int16_t ipsize, u_int16_t rawsize, const struct pcap_pkthdr *header, const u_char *packet, - struct timeval when) { + struct timeval when, + FILE * csv_fp) { struct ndpi_id_struct *src, *dst; struct ndpi_flow_info *flow = NULL; struct ndpi_flow_struct *ndpi_flow = NULL; @@ -1513,7 +1513,7 @@ static struct ndpi_proto packet_processing(struct ndpi_workflow * workflow, enable_protocol_guess, &proto_guessed); } - process_ndpi_collected_info(workflow, flow); + process_ndpi_collected_info(workflow, flow, csv_fp); } } } @@ -1525,7 +1525,8 @@ static struct ndpi_proto packet_processing(struct ndpi_workflow * workflow, struct ndpi_proto ndpi_workflow_process_packet(struct ndpi_workflow * workflow, const struct pcap_pkthdr *header, - const u_char *packet) { + const u_char *packet, + FILE * csv_fp) { /* * Declare pointers to packet headers */ @@ -1945,7 +1946,8 @@ struct ndpi_proto ndpi_workflow_process_packet(struct ndpi_workflow * workflow, /* process the packet */ return(packet_processing(workflow, time_ms, vlan_id, tunnel_type, iph, iph6, ip_offset, header->caplen - ip_offset, - header->caplen, header, packet, header->ts)); + header->caplen, header, packet, header->ts, + csv_fp)); } /* ********************************************************** */ diff --git a/example/reader_util.h b/example/reader_util.h index 75d66bfd4..d4e3dc74f 100644 --- a/example/reader_util.h +++ b/example/reader_util.h @@ -308,7 +308,8 @@ void ndpi_free_flow_info_half(struct ndpi_flow_info *flow); /* Process a packet and update the workflow */ struct ndpi_proto ndpi_workflow_process_packet(struct ndpi_workflow * workflow, const struct pcap_pkthdr *header, - const u_char *packet); + const u_char *packet, + FILE * csv_fp); /* flow callbacks for complete detected flow @@ -327,7 +328,7 @@ static inline void ndpi_workflow_set_flow_giveup_callback(struct ndpi_workflow * /* compare two nodes in workflow */ int ndpi_workflow_node_cmp(const void *a, const void *b); -void process_ndpi_collected_info(struct ndpi_workflow * workflow, struct ndpi_flow_info *flow); +void process_ndpi_collected_info(struct ndpi_workflow * workflow, struct ndpi_flow_info *flow, FILE * csv_fp); u_int32_t ethernet_crc32(const void* data, size_t n_bytes); void ndpi_flow_info_free_data(struct ndpi_flow_info *flow); void ndpi_flow_info_freer(void *node); diff --git a/fuzz/fuzz_ndpi_reader.c b/fuzz/fuzz_ndpi_reader.c index 3d35cf89b..4360bbb55 100644 --- a/fuzz/fuzz_ndpi_reader.c +++ b/fuzz/fuzz_ndpi_reader.c @@ -83,7 +83,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { /* allocate an exact size buffer to check overflows */ uint8_t *packet_checked = malloc(header->caplen); memcpy(packet_checked, pkt, header->caplen); - ndpi_workflow_process_packet(workflow, header, packet_checked); + ndpi_workflow_process_packet(workflow, header, packet_checked, NULL); free(packet_checked); r = pcap_next_ex(pkts, &header, &pkt); } |