mirror of
https://github.com/vel21ripn/nDPI.git
synced 2026-05-17 03:56:50 +00:00
We can write to `flow->protos` only after a proper classification. This issue has been found in Kerberos, DHCP, HTTP, STUN, IMO, FTP, SMTP, IMAP and POP code. There are two kinds of fixes: * write to `flow->protos` only if a final protocol has been detected * move protocol state out of `flow->protos` The hard part is to find, for each protocol, the right tradeoff between memory usage and code complexity. Handle Kerberos like DNS: if we find a request, we set the protocol and an extra callback to further parsing the reply. For all the other protocols, move the state out of `flow->protos`. This is an issue only for the FTP/MAIL stuff. Add DHCP Class Identification value to the output of ndpiReader and to the Jason serialization. Extend code coverage of fuzz tests. Close #1343 Close #1342
52 lines
2.4 KiB
Makefile
52 lines
2.4 KiB
Makefile
bin_PROGRAMS = fuzz_process_packet fuzz_process_packet_with_main fuzz_ndpi_reader fuzz_ndpi_reader_with_main
|
|
|
|
fuzz_process_packet_SOURCES = fuzz_process_packet.c
|
|
fuzz_process_packet_CFLAGS =
|
|
fuzz_process_packet_LDADD = ../src/lib/libndpi.a
|
|
fuzz_process_packet_LDFLAGS = $(ADDITIONAL_LIBS) $(LIBS)
|
|
if HAS_FUZZLDFLAGS
|
|
fuzz_process_packet_CFLAGS += $(LIB_FUZZING_ENGINE)
|
|
fuzz_process_packet_LDFLAGS += $(LIB_FUZZING_ENGINE)
|
|
endif
|
|
# force usage of CXX for linker
|
|
fuzz_process_packet_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
|
$(LIBTOOLFLAGS) --mode=link $(CXX) $(AM_CXXFLAGS) $(CXXFLAGS) \
|
|
$(fuzz_process_packet_LDFLAGS) $(LDFLAGS) -o $@
|
|
|
|
fuzz_process_packet_with_main_SOURCES = fuzz_process_packet.c
|
|
fuzz_process_packet_with_main_CFLAGS = -DBUILD_MAIN
|
|
fuzz_process_packet_with_main_LDADD = ../src/lib/libndpi.a
|
|
fuzz_process_packet_with_main_LDFLAGS = $(ADDITIONAL_LIBS) $(LIBS)
|
|
# force usage of CXX for linker
|
|
fuzz_process_packet_with_main_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
|
$(LIBTOOLFLAGS) --mode=link $(CXX) $(AM_CXXFLAGS) $(CXXFLAGS) \
|
|
$(fuzz_process_packet_with_main_LDFLAGS) $(LDFLAGS) -o $@
|
|
|
|
fuzz_ndpi_reader_SOURCES = fuzz_ndpi_reader.c
|
|
fuzz_ndpi_reader_CFLAGS = -I../example/
|
|
fuzz_ndpi_reader_LDADD = ../example/libndpiReader.a ../src/lib/libndpi.a
|
|
fuzz_ndpi_reader_LDFLAGS = $(PCAP_LIB) $(ADDITIONAL_LIBS) $(LIBS)
|
|
if HAS_FUZZLDFLAGS
|
|
fuzz_ndpi_reader_CFLAGS += $(LIB_FUZZING_ENGINE)
|
|
fuzz_ndpi_reader_LDFLAGS += $(LIB_FUZZING_ENGINE)
|
|
endif
|
|
# force usage of CXX for linker
|
|
fuzz_ndpi_reader_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
|
$(LIBTOOLFLAGS) --mode=link $(CXX) $(AM_CXXFLAGS) $(CXXFLAGS) \
|
|
$(fuzz_ndpi_reader_LDFLAGS) $(LDFLAGS) -o $@
|
|
|
|
fuzz_ndpi_reader_with_main_SOURCES = fuzz_ndpi_reader.c
|
|
fuzz_ndpi_reader_with_main_CFLAGS = -I../example/ -DBUILD_MAIN
|
|
fuzz_ndpi_reader_with_main_LDADD = ../src/lib/libndpi.a
|
|
fuzz_ndpi_reader_with_main_LDFLAGS = ../example/libndpiReader.a $(PCAP_LIB) $(ADDITIONAL_LIBS) $(LIBS)
|
|
# force usage of CXX for linker
|
|
fuzz_ndpi_reader_with_main_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
|
$(LIBTOOLFLAGS) --mode=link $(CXX) $(AM_CXXFLAGS) $(CXXFLAGS) \
|
|
$(fuzz_ndpi_reader_with_main_LDFLAGS) $(LDFLAGS) -o $@
|
|
|
|
# required for Google oss-fuzz
|
|
# see https://github.com/google/oss-fuzz/tree/master/projects/ndpi
|
|
testpcaps := $(wildcard ../tests/pcap/*.pcap*)
|
|
|
|
fuzz_ndpi_reader_seed_corpus.zip: $(testpcaps)
|
|
zip -r fuzz_ndpi_reader_seed_corpus.zip $(testpcaps)
|