diff -up dhcp-4.3.0a1/server/db.c.leak dhcp-4.3.0a1/server/db.c --- dhcp-4.3.0a1/server/db.c.leak 2013-12-20 13:39:51.629774500 +0100 +++ dhcp-4.3.0a1/server/db.c 2013-12-20 13:39:51.673773887 +0100 @@ -416,6 +416,7 @@ int write_host (host) fputc (';', db_file); if (errno) ++errors; + data_string_forget (&ip_addrs, MDL); } if (host -> named_group) { diff -up dhcp-4.3.0a1/server/omapi.c.leak dhcp-4.3.0a1/server/omapi.c --- dhcp-4.3.0a1/server/omapi.c.leak 2013-12-11 01:25:12.000000000 +0100 +++ dhcp-4.3.0a1/server/omapi.c 2013-12-20 13:39:51.674773873 +0100 @@ -1133,8 +1133,6 @@ isc_result_t dhcp_host_destroy (omapi_ob if (h -> type != dhcp_type_host) return DHCP_R_INVALIDARG; -#if defined (DEBUG_MEMORY_LEAKAGE) || \ - defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT) struct host_decl *host = (struct host_decl *)h; if (host -> n_ipaddr) host_dereference (&host -> n_ipaddr, file, line); @@ -1153,7 +1151,6 @@ isc_result_t dhcp_host_destroy (omapi_ob omapi_object_dereference ((omapi_object_t **) &host -> named_group, file, line); data_string_forget (&host -> auth_key_id, file, line); -#endif return ISC_R_SUCCESS; } @@ -1239,6 +1236,7 @@ isc_result_t dhcp_host_stuff_values (oma ip_addrs.data, ip_addrs.len); if (status != ISC_R_SUCCESS) return status; + data_string_forget (&ip_addrs, MDL); } if (host -> client_identifier.len) {