mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-04-28 19:20:49 +02:00
rdisc: fix leak of DNS domains
This commit is contained in:
parent
8d9ee6d8e8
commit
527eeb6d68
1 changed files with 7 additions and 1 deletions
|
|
@ -503,7 +503,6 @@ clean_dns_domains (NMRDisc *rdisc, guint32 now, NMRDiscConfigMap *changed, guint
|
|||
continue;
|
||||
|
||||
if (now >= expiry) {
|
||||
g_free (item->domain);
|
||||
g_array_remove_index (rdisc->dns_domains, i--);
|
||||
*changed |= NM_RDISC_CONFIG_DNS_DOMAINS;
|
||||
} else if (now >= refresh)
|
||||
|
|
@ -563,6 +562,12 @@ nm_rdisc_ra_received (NMRDisc *rdisc, guint32 now, NMRDiscConfigMap changed)
|
|||
|
||||
/******************************************************************/
|
||||
|
||||
static void
|
||||
dns_domain_free (gpointer data)
|
||||
{
|
||||
g_free (((NMRDiscDNSDomain *)(data))->domain);
|
||||
}
|
||||
|
||||
static void
|
||||
nm_rdisc_init (NMRDisc *rdisc)
|
||||
{
|
||||
|
|
@ -571,6 +576,7 @@ nm_rdisc_init (NMRDisc *rdisc)
|
|||
rdisc->routes = g_array_new (FALSE, FALSE, sizeof (NMRDiscRoute));
|
||||
rdisc->dns_servers = g_array_new (FALSE, FALSE, sizeof (NMRDiscDNSServer));
|
||||
rdisc->dns_domains = g_array_new (FALSE, FALSE, sizeof (NMRDiscDNSDomain));
|
||||
g_array_set_clear_func (rdisc->dns_domains, dns_domain_free);
|
||||
rdisc->hop_limit = 64;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue