]> git.ipfire.org Git - thirdparty/bind9.git/commit
Don't cleanup the dns_message_checksig fuzzer in atexit handler
authorOndřej Surý <ondrej@isc.org>
Thu, 22 Jun 2023 13:43:04 +0000 (15:43 +0200)
committerOndřej Surý <ondrej@isc.org>
Mon, 31 Jul 2023 13:51:15 +0000 (15:51 +0200)
commit1e3b6d2d83e2eecc4dcbec58f57a55f515ea6976
tree46f87cd2913214b8fd2bb0e4aa95660767b229c7
parentb570750382dc38efa4203ce822bf4267a76562c5
Don't cleanup the dns_message_checksig fuzzer in atexit handler

After the dns_badcache refactoring, the dns_badcache_destroy() would
call call_rcu().  The dns_message_checksig cleanup which calls
dns_view_detach() happens in the atexit handler, so there might be
call_rcu threads started very late in the process.  The liburcu
registers library destructor that destroys the data structured internal
to liburcu and this clashes with the call_rcu thread that just got
started in the atexit() handler causing either (depending on timing):

 - a normal run
 - a straight segfault
 - an assertion failure from liburcu

Instead of trying to cleanup the dns_message_checksig unit, ignore the
leaked memory as we do with all the other fuzzing tests.
fuzz/dns_message_checksig.c