From 626be147a6b6e09e15cd6c4b51bf8cfa87fa6f56 Mon Sep 17 00:00:00 2001 From: reverendhomer Date: Sat, 8 Aug 2015 14:24:11 +0300 Subject: libsystemd-network: fix memory leak --- src/libsystemd-network/sd-dhcp-lease.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/libsystemd-network/sd-dhcp-lease.c b/src/libsystemd-network/sd-dhcp-lease.c index e0874aebad..f5b9e22589 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; -- cgit v1.2.3-54-g00ecf