]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Don't detach xfr in dns_xfrin_shutdown()
authorOndřej Surý <ondrej@isc.org>
Tue, 4 Apr 2023 08:26:41 +0000 (10:26 +0200)
committerOndřej Surý <ondrej@isc.org>
Tue, 4 Apr 2023 08:26:41 +0000 (10:26 +0200)
As we are now using dispatch instead of netmgr for XFR TCP connection,
the xfrin_recv_done() will be called when cancelling the dispatch with
ISC_R_CANCELED.  This could lead to double detach from the dns_xfrin_t,
one in the xfrin_recv_done() and one in the dns_xfrin_shutdown().

Remove the extra detach from the dns_xfrin_shutdown() and rely on the
dispatch read callback to be always called.

lib/dns/xfrin.c

index 9f347772b7aac4dcc7006fbdea0d56db22216b8e..99190cc385e434cdd65337779916d8ca32997413 100644 (file)
@@ -742,9 +742,6 @@ dns_xfrin_shutdown(dns_xfrin_t *xfr) {
        REQUIRE(VALID_XFRIN(xfr));
 
        xfrin_fail(xfr, ISC_R_CANCELED, "shut down");
-
-       /* we won't reach xfrin_recv_done(), so dereference xfr here */
-       dns_xfrin_unref(xfr);
 }
 
 #if DNS_XFRIN_TRACE