mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-29 05:28:00 +00:00
When parsing message with DNS_MESSAGE_BESTEFFORT (used exclusively in tools, never in named itself) if we hit an invalid SIG(0) in wrong place we continue parsing the message, and put the sig0 in msg->sig0. If we then hit another sig0 in a proper place we see that msg->sig0 is already 'taken' and we don't free name and rdataset, and we don't set seen_problem. This causes an assertion failure. This fixes that issue by setting seen_problem if we hit second sig0, tsig or opt, which causes name and rdataset to be always freed.