From 9f7d3db3ed5073d70face123f30500fd0e82bffe Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 8 Nov 2018 12:15:09 +0900 Subject: [PATCH 1/4] fuzz: add more testcases of already fixed issue about multiple netdev kind This adds testcases of oss-fuzz#11286, oss-fuzz#11287, oss-fuzz#11296, oss-fuzz#11297, and oss-fuzz#11299. The issue was fixed by 62facba19ad645df7fb425ce170bdbda208b303c. --- test/fuzz/fuzz-netdev-parser/oss-fuzz-11286 | Bin 0 -> 65 bytes test/fuzz/fuzz-netdev-parser/oss-fuzz-11287 | Bin 0 -> 60 bytes test/fuzz/fuzz-netdev-parser/oss-fuzz-11296 | Bin 0 -> 318 bytes test/fuzz/fuzz-netdev-parser/oss-fuzz-11297 | Bin 0 -> 77 bytes test/fuzz/fuzz-netdev-parser/oss-fuzz-11299 | Bin 0 -> 54 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/fuzz/fuzz-netdev-parser/oss-fuzz-11286 create mode 100644 test/fuzz/fuzz-netdev-parser/oss-fuzz-11287 create mode 100644 test/fuzz/fuzz-netdev-parser/oss-fuzz-11296 create mode 100644 test/fuzz/fuzz-netdev-parser/oss-fuzz-11297 create mode 100644 test/fuzz/fuzz-netdev-parser/oss-fuzz-11299 diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-11286 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11286 new file mode 100644 index 0000000000000000000000000000000000000000..cde4ee8e43f5c838d3b488f49af52bdfd0daa2b0 GIT binary patch literal 65 zcma#{OD%CpEsN#yOUzBRP3Q8?%uBH?&n!w!FHI~;QQ(RWDb34E&57mmQDBIMsZ~$_ LE6Xg%EKmRd)3g6?003kw B6cGRb literal 0 HcmV?d00001 diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-11296 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11296 new file mode 100644 index 0000000000000000000000000000000000000000..05d57f702bea7a1c8b4092449e63309556737151 GIT binary patch literal 318 zcma#{OD%CpEsNz+fCKN$ycFB=%%arv(!`<^1+HkgOe~y*!a&lCB2GRhI;1o&FEt0` os$?9dFhpaz9EVbnuwP~ShDrJ*=BC;vF@V)10VM(SF%lL4 literal 0 HcmV?d00001 From 7a99f98b50b9788e22140c812f7be733dad0725a Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 8 Nov 2018 12:29:38 +0900 Subject: [PATCH 2/4] network: make config_parse_radv_search_domains() log error in dns_name_apply_idna() --- src/network/networkd-network.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index f257ac6698..fb4c519dbe 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -1154,8 +1154,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 +1167,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; From 28c3428df0b7790ab8f55524bd1b60113a620e4e Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 8 Nov 2018 12:30:00 +0900 Subject: [PATCH 3/4] network: adds missing strv_free() Fixes oss-fuzz#11285. --- src/network/networkd-network.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index fb4c519dbe..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); From d571998498703e1c684a7c346cc9590ccffc0f06 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 8 Nov 2018 12:31:02 +0900 Subject: [PATCH 4/4] fuzz: add a testcase for oss-fuzz#11285 --- test/fuzz/fuzz-network-parser/oss-fuzz-11285 | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 test/fuzz/fuzz-network-parser/oss-fuzz-11285 diff --git a/test/fuzz/fuzz-network-parser/oss-fuzz-11285 b/test/fuzz/fuzz-network-parser/oss-fuzz-11285 new file mode 100644 index 0000000000..e0aad02cdb --- /dev/null +++ b/test/fuzz/fuzz-network-parser/oss-fuzz-11285 @@ -0,0 +1,2 @@ +[IPv6PrefixDelegation] +Domains=m \ No newline at end of file