From: reverendhomer Date: Sat, 8 Aug 2015 11:24:11 +0000 (+0300) Subject: libsystemd-network: fix memory leak X-Git-Tag: v225~82^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F916%2Fhead;p=thirdparty%2Fsystemd.git libsystemd-network: fix memory leak --- diff --git a/src/libsystemd-network/sd-dhcp-lease.c b/src/libsystemd-network/sd-dhcp-lease.c index e0874aebad1..f5b9e225899 100644 --- a/src/libsystemd-network/sd-dhcp-lease.c +++ b/src/libsystemd-network/sd-dhcp-lease.c @@ -954,7 +954,7 @@ int sd_dhcp_lease_load(sd_dhcp_lease **ret, const char *lease_file) { } for (i = 0; i <= DHCP_OPTION_PRIVATE_LAST - DHCP_OPTION_PRIVATE_BASE; i++) { - uint8_t *data; + _cleanup_free_ uint8_t *data = NULL; size_t len; if (!options[i]) @@ -965,10 +965,8 @@ int sd_dhcp_lease_load(sd_dhcp_lease **ret, const char *lease_file) { return r; r = dhcp_lease_insert_private_option(lease, DHCP_OPTION_PRIVATE_BASE + i, data, len); - if (r < 0) { - free(data); + if (r < 0) return r; - } } *ret = lease;