]> git.ipfire.org Git - thirdparty/bind9.git/commit
The dsset returned by dns_keynode_dsset needs to be thread safe.
authorMark Andrews <marka@isc.org>
Wed, 10 Jun 2020 07:07:52 +0000 (17:07 +1000)
committerMark Andrews <marka@isc.org>
Thu, 11 Jun 2020 06:02:09 +0000 (16:02 +1000)
commite5b2eca1d3eebfc0fb1bf6fc635e5d681182bc5b
tree3616dc57608f55bda65279bd34f546fd5f131f81
parentc24f4eb1c96d0a1f016c4e94c338524d18d2e1ba
The dsset returned by dns_keynode_dsset needs to be thread safe.

- clone keynode->dsset rather than return a pointer so that thread
  use is independent of each other.
- hold a reference to the dsset (keynode) so it can't be deleted
  while in use.
- create a new keynode when removing DS records so that dangling
  pointers to the deleted records will not occur.
- use a rwlock when accessing the rdatalist to prevent instabilities
  when DS records are added.
bin/named/server.c
lib/dns/include/dns/keytable.h
lib/dns/include/dns/validator.h
lib/dns/keytable.c
lib/dns/validator.c
lib/dns/zone.c
lib/dns/zoneverify.c
lib/ns/query.c