summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-11-08 09:37:35 +0100
committerGitHub <noreply@github.com>2018-11-08 09:37:35 +0100
commit8d2411f69348a081419c2fb7cddbe1970cf3eac5 (patch)
tree974e2755ed8dedcb55933ebc4fc95b65105b0098 /src
parentb9c04eafb8f8b905919c5fe1feba6e0b04f46726 (diff)
parentd571998498703e1c684a7c346cc9590ccffc0f06 (diff)
downloadsystemd-8d2411f69348a081419c2fb7cddbe1970cf3eac5.tar.gz
systemd-8d2411f69348a081419c2fb7cddbe1970cf3eac5.tar.bz2
systemd-8d2411f69348a081419c2fb7cddbe1970cf3eac5.zip
Merge pull request #10682 from yuwata/fix-oss-fuzz-network-issues
network: fix memleak
Diffstat (limited to 'src')
-rw-r--r--src/network/networkd-network.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
index f257ac6698..4eb553125b 100644
--- a/src/network/networkd-network.c
+++ b/src/network/networkd-network.c
@@ -369,6 +369,7 @@ void network_free(Network *network) {
strv_free(network->search_domains);
strv_free(network->route_domains);
strv_free(network->bind_carrier);
+ strv_free(network->router_search_domains);
netdev_unref(network->bridge);
netdev_unref(network->bond);
@@ -1154,8 +1155,7 @@ int config_parse_radv_search_domains(
assert(rvalue);
for (;;) {
- _cleanup_free_ char *w = NULL;
- _cleanup_free_ char *idna = NULL;
+ _cleanup_free_ char *w = NULL, *idna = NULL;
r = extract_first_word(&p, &w, NULL, 0);
if (r == -ENOMEM)
@@ -1168,11 +1168,15 @@ int config_parse_radv_search_domains(
break;
r = dns_name_apply_idna(w, &idna);
+ if (r < 0) {
+ log_syntax(unit, LOG_ERR, filename, line, r, "Failed to apply IDNA to domain name '%s', ignoring: %m", w);
+ continue;
+ }
if (r > 0) {
r = strv_push(&n->router_search_domains, idna);
if (r >= 0)
idna = NULL;
- } else if (r == 0) {
+ } else {
r = strv_push(&n->router_search_domains, w);
if (r >= 0)
w = NULL;