diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index eb13e9e93d..c8f7c4f98a 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -1013,7 +1013,8 @@ int config_parse_timezone( void *data, void *userdata) { - char **datap = data, *tz = NULL; + _cleanup_free_ char *tz = NULL; + char **datap = data; int r; assert(filename); @@ -1026,14 +1027,10 @@ int config_parse_timezone( if (!timezone_is_valid(tz, LOG_ERR)) { log_syntax(unit, LOG_ERR, filename, line, 0, "Timezone is not valid, ignoring assignment: %s", rvalue); - free(tz); return 0; } - free(*datap); - *datap = tz; - - return 0; + return free_and_replace(*datap, tz); } int config_parse_dhcp_server_dns(