From: Andreas Henriksson Date: Fri, 13 Jun 2014 16:48:20 +0000 (+0200) Subject: sd-dhcp-client: fix invalid free() in client_send_request() X-Git-Tag: v215~441 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;ds=sidebyside;h=8186d9dda0d3f8a853afe6fdbd605f42151fe165;p=elogind.git sd-dhcp-client: fix invalid free() in client_send_request() static int client_send_request(...) in ./src/libsystemd-network/sd-dhcp-client.c tries to initialize "request" by calling client_message_init(...), which has atleast 5 error cases where it can return without that happening. This leads to the function finishing without "request" being initialized. --- diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c index 8f549060b..2a46624f2 100644 --- a/src/libsystemd-network/sd-dhcp-client.c +++ b/src/libsystemd-network/sd-dhcp-client.c @@ -413,7 +413,7 @@ static int client_send_discover(sd_dhcp_client *client) { } static int client_send_request(sd_dhcp_client *client) { - _cleanup_free_ DHCPPacket *request; + _cleanup_free_ DHCPPacket *request = NULL; size_t optoffset, optlen; int r;