summaryrefslogtreecommitdiff
path: root/common/dns.c
diff options
context:
space:
mode:
authorDavid Hankins <dhankins@isc.org>2010-05-24 23:47:42 +0000
committerDavid Hankins <dhankins@isc.org>2010-05-24 23:47:42 +0000
commit8a513c436ba497094752a6013be509a9ccc3734e (patch)
treeabdf462b6c89749e6456a1bf0a767e59e2b76c69 /common/dns.c
parent1943bbf803f5a46f3f7e118785709fd82575e41e (diff)
downloadisc-dhcp-8a513c436ba497094752a6013be509a9ccc3734e.tar.gz
- A memory leak in ddns processing was closed. [ISC-Bugs #21377]
Diffstat (limited to 'common/dns.c')
-rw-r--r--common/dns.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/common/dns.c b/common/dns.c
index c7c84134..5c2e5b33 100644
--- a/common/dns.c
+++ b/common/dns.c
@@ -462,6 +462,11 @@ ddns_cb_free(dhcp_ddns_cb_t *ddns_cb, const char *file, int line)
forget_zone((struct dns_zone **)&ddns_cb->zone);
}
+ /* Should be freed by now, check just in case. */
+ if (ddns_cb->transaction != NULL)
+ log_error("Impossible memory leak at %s:%d (attempt to free "
+ "DDNS Control Block before transaction).", MDL);
+
dfree(ddns_cb, file, line);
}
@@ -1241,7 +1246,7 @@ void ddns_interlude(isc_task_t *taskp,
}
#endif
/* This transaction is complete, clear the value */
- ddns_cb->transaction = NULL;
+ dns_client_destroyupdatetrans(&ddns_cb->transaction);
/* If we cancelled or tried to cancel the operation we just
* need to clean up. */