diff options
author | reverendhomer <mk.43.ecko@gmail.com> | 2015-08-08 14:24:11 +0300 |
---|---|---|
committer | reverendhomer <mk.43.ecko@gmail.com> | 2015-08-08 14:24:11 +0300 |
commit | 626be147a6b6e09e15cd6c4b51bf8cfa87fa6f56 (patch) | |
tree | 1803ac98ec98a0328d6d7f9462023e906f6cd08e /src/libsystemd-network/sd-dhcp-lease.c | |
parent | b28098571b3e4ab332049875db6d52a11a8d3947 (diff) |
libsystemd-network: fix memory leak
Diffstat (limited to 'src/libsystemd-network/sd-dhcp-lease.c')
-rw-r--r-- | src/libsystemd-network/sd-dhcp-lease.c | 6 |
1 files 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; |