From: Tom Gundersen Date: Thu, 2 Jan 2014 23:55:35 +0000 (+0100) Subject: networkd: dhcp - avoid null pointer dereference X-Git-Tag: v209~575 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=b1b532f58c99f8d199e6081fa9f23b99f8af2a84;ds=sidebyside networkd: dhcp - avoid null pointer dereference --- diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 87f32f00a..17a1e4988 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -513,13 +513,17 @@ static void dhcp_handler(sd_dhcp_client *client, int event, void *userdata) { if (event == DHCP_EVENT_IP_CHANGE || event == DHCP_EVENT_EXPIRED || event == DHCP_EVENT_STOP) { - address_drop(link->dhcp_address, link, address_drop_handler); + if (link->dhcp_address) { + address_drop(link->dhcp_address, link, address_drop_handler); - address_free(link->dhcp_address); - link->dhcp_address = NULL; + address_free(link->dhcp_address); + link->dhcp_address = NULL; + } - route_free(link->dhcp_route); - link->dhcp_route = NULL; + if (link->dhcp_route) { + route_free(link->dhcp_route); + link->dhcp_route = NULL; + } } r = sd_dhcp_client_get_address(client, &address);