]> git.ipfire.org Git - thirdparty/bind9.git/commit
Fix a data access race in resolver
authorWitold Kręcicki <wpk@isc.org>
Thu, 21 May 2020 12:31:09 +0000 (14:31 +0200)
committerOndřej Surý <ondrej@sury.org>
Fri, 5 Jun 2020 14:06:42 +0000 (16:06 +0200)
commit175c4d905567a841c0f76704ebc126ee9268ecd7
treefe81579254aed2a778c20086d3355d224ac37441
parentd494543d6ead14b597c008211d1956c2b57c3afb
Fix a data access race in resolver

We were passing client address to dns_resolver_createfetch as a pointer
and it was saved as a pointer. The client (with its address) could be
gone before the fetch is finished, and in a very odd scenario
log_formerr would call isc_sockaddr_format() which first checks if the
address family is valid (and at this point it still is), then the
sockaddr is cleared, and then isc_netaddr_fromsockaddr is called which
fails an assertion as the address family is now invalid.
lib/dns/resolver.c