bind9/fuzz
Tony Finch 45b2d8938b
Simplify and speed up DNS name compression
All we need for compression is a very small hash set of compression
offsets, because most of the information we need (the previously added
names) can be found in the message using the compression offsets.

This change combines dns_compress_find() and dns_compress_add() into
one function dns_compress_name() that both finds any existing suffix,
and adds any new prefix to the table. The old split led to performance
problems caused by duplicate names in the compression context.

Compression contexts are now either small or large, which the caller
chooses depending on the expected size of the message. There is no
dynamic resizing.

There is a behaviour change: compression now acts on all the labels in
each name, instead of just the last few.

A small benchmark suggests this is about 2x faster.
2022-10-17 08:45:44 +02:00
..
dns_master_load.in Add test case for issue-45178 2022-04-01 07:56:52 +00:00
dns_message_checksig.in Add seed to reproduce issue memory leak in dns_message_checktsig 2022-09-26 16:29:36 +02:00
dns_message_parse.in Add packet from issue #4189 2020-09-30 13:24:29 +00:00
dns_name_fromtext_target.in oss-fuzz: Improve interaction with fuzzing tools and add new tests in fuzz/ directory 2018-08-23 10:07:28 +02:00
dns_rdata_fromtext.in Add seed that demonstrated INSIST triggered in isc_lex_gettoken 2022-03-01 16:05:39 -08:00
dns_rdata_fromwire_text.in add svcb fuzzing seed 2021-08-18 13:49:48 +10:00
isc_lex_getmastertoken.in Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
isc_lex_gettoken.in Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
.gitignore Add dns_message_checksig() fuzzer 2022-09-26 16:28:23 +02:00
afl.sh Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
dns_master_load.c Add dns_master_loadbuffer() fuzzer 2022-02-24 10:02:56 +01:00
dns_message_checksig.c Create a key directory in /tmp 2022-09-30 02:19:52 +00:00
dns_message_parse.c Simplify and speed up DNS name compression 2022-10-17 08:45:44 +02:00
dns_name_fromtext_target.c Add dns_rdata_fromtext() fuzzer 2022-02-24 11:12:06 +01:00
dns_rdata_fromtext.c Add dns_rdata_fromtext() fuzzer 2022-02-24 11:12:06 +01:00
dns_rdata_fromwire_text.c Simplify and speed up DNS name compression 2022-10-17 08:45:44 +02:00
fuzz.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
FUZZING.md Fix configure options in FUZZING.md 2022-02-24 11:12:02 +01:00
isc_lex_getmastertoken.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
isc_lex_gettoken.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
libfuzzer.sh Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
main.c Detect errors in fuzzer initialization 2022-09-27 11:21:38 +02:00
Makefile.am Add dns_message_checksig() fuzzer 2022-09-26 16:28:23 +02:00