mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-22 10:10:14 -04:00
rdata_covers() in lib/dns/diff.c discriminated only on dns_rdatatype_rrsig (46) and returned 0 for the legacy SIG (24), so the covered-type field was silently discarded on the dynamic-update and IXFR paths. Every SIG rdataset was then filed in the zone DB under typepair (SIG, 0) instead of (SIG, covered_type); a second SIG add with a different covers but a different TTL collided at that bucket, tripped DNS_DBADD_EXACTTTL in qpzone, returned DNS_R_NOTEXACT, and came back to the client as SERVFAIL. Use dns_rdatatype_issig() here so both SIG and RRSIG carry their covers through the diff, matching the helper pattern already used in lib/dns/master.c, lib/ns/xfrout.c, lib/dns/qpcache.c, and the dns__db_findrdataset() REQUIRE that the surrounding merge request just relaxed. |
||
|---|---|---|
| .. | ||
| dns | ||
| isc | ||
| isccc | ||
| isccfg | ||
| ns | ||
| .gitignore | ||
| meson.build | ||