+2403. [bug] TSIG context leak. [RT #18341]
+
2402. [port] Support Solaris 2.11 and over. [RT #18362]
2401. [bug] Expect to get E[MN]FILE errno internal_accept()
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: message.c,v 1.194.2.10.2.28 2007/08/28 07:19:13 tbox Exp $ */
+/* $Id: message.c,v 1.194.2.10.2.28.4.1 2008/07/28 08:57:19 marka Exp $ */
/***
*** Imports
msg->tsigkey = NULL;
}
+ if (msg->tsigctx != NULL)
+ dst_context_destroy(&msg->tsigctx);
+
if (msg->query.base != NULL) {
if (msg->free_query != 0)
isc_mem_put(msg->mctx, msg->query.base,
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: xfrin.c,v 1.124.2.4.2.21.4.3 2008/07/23 23:16:26 marka Exp $ */
+/* $Id: xfrin.c,v 1.124.2.4.2.21.4.4 2008/07/28 08:57:19 marka Exp $ */
#include <config.h>
xfr->id++;
xfr->nmsg = 0;
msg->id = xfr->id;
+ if (xfr->tsigctx != NULL)
+ dst_context_destroy(&xfr->tsigctx);
CHECK(render(msg, xfr->mctx, &xfr->qbuffer));
CHECK(dns_message_settsigkey(msg, xfr->tsigkey));
CHECK(dns_message_setquerytsig(msg, xfr->lasttsig));
+
msg->tsigctx = xfr->tsigctx;
+ xfr->tsigctx = NULL;
+
if (xfr->nmsg > 0)
msg->tcp_continuation = 1;
xfr->nmsg++;
/*
- * Copy the context back.
+ * Take the context back.
*/
+ INSIST(xfr->tsigctx == NULL);
xfr->tsigctx = msg->tsigctx;
+ msg->tsigctx = NULL;
dns_message_destroy(&msg);
if (xfr->tcpmsg_valid)
dns_tcpmsg_invalidate(&xfr->tcpmsg);
+ if (xfr->tsigctx != NULL)
+ dst_context_destroy(&xfr->tsigctx);
+
if ((xfr->name.attributes & DNS_NAMEATTR_DYNAMIC) != 0)
dns_name_free(&xfr->name, xfr->mctx);