From 5f07d640cad1133f99f242675dc3b67642cb7cdc Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 15 Mar 2019 23:44:47 +0900 Subject: [PATCH 1/5] network: clear previous assignment Fixes oss-fuzz#13719. --- src/network/netdev/wireguard.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/network/netdev/wireguard.c b/src/network/netdev/wireguard.c index b1b2ae1bb9..73c5402972 100644 --- a/src/network/netdev/wireguard.c +++ b/src/network/netdev/wireguard.c @@ -758,12 +758,12 @@ int config_parse_wireguard_endpoint(const char *unit, ++end; } - peer->endpoint_host = strndup(begin, len); - if (!peer->endpoint_host) + r = free_and_strndup(&peer->endpoint_host, begin, len); + if (r < 0) return log_oom(); - peer->endpoint_port = strdup(end); - if (!peer->endpoint_port) + r = free_and_strdup(&peer->endpoint_port, end); + if (r < 0) return log_oom(); r = set_ensure_allocated(&w->peers_with_unresolved_endpoint, NULL); From 5ba40bb2cc8b738b3bfc8678d44294a6b5434276 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 15 Mar 2019 23:47:41 +0900 Subject: [PATCH 2/5] fuzz: add a testcase for oss-fuzz#13719 --- test/fuzz/fuzz-netdev-parser/oss-fuzz-13719 | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 test/fuzz/fuzz-netdev-parser/oss-fuzz-13719 diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-13719 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-13719 new file mode 100644 index 0000000000..adff4c186b --- /dev/null +++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-13719 @@ -0,0 +1,6 @@ +[NetDev] +Name=w +Kind=wireguard +[WireGuardPeer] +Endpoint=:0 +Endpoint=:8 \ No newline at end of file From 1d0c1146eaa4db5a496c43d56f8a441d0faed3d7 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 15 Mar 2019 23:53:02 +0900 Subject: [PATCH 3/5] nspawn: fix memleak Fixes oss-fuzz#13691. --- src/nspawn/nspawn-mount.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nspawn/nspawn-mount.c b/src/nspawn/nspawn-mount.c index 12f557ee99..4878586c4e 100644 --- a/src/nspawn/nspawn-mount.c +++ b/src/nspawn/nspawn-mount.c @@ -304,7 +304,7 @@ int overlay_mount_parse(CustomMount **l, size_t *n, const char *s, bool read_onl /* If the upper directory is unspecified, then let's create it automatically as a throw-away directory * in /var/tmp */ if (isempty(upper)) - upper = NULL; + upper = mfree(upper); else if (!source_path_is_valid(upper)) return -EINVAL; From c7a67ba5eb78ec529d136519234c99e84b5cb45f Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 15 Mar 2019 23:54:30 +0900 Subject: [PATCH 4/5] fuzz: add testcase for oss-fuzz#13691 --- test/fuzz/fuzz-nspawn-settings/oss-fuzz-13691 | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 test/fuzz/fuzz-nspawn-settings/oss-fuzz-13691 diff --git a/test/fuzz/fuzz-nspawn-settings/oss-fuzz-13691 b/test/fuzz/fuzz-nspawn-settings/oss-fuzz-13691 new file mode 100644 index 0000000000..51f46e3734 --- /dev/null +++ b/test/fuzz/fuzz-nspawn-settings/oss-fuzz-13691 @@ -0,0 +1,2 @@ +[Files] +Overlay=/:: \ No newline at end of file From 50969cff60e86600034ce88bfdb539a3f9f240ad Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sat, 16 Mar 2019 00:11:22 +0900 Subject: [PATCH 5/5] network: clear previous assignment Prompted by oss-fuzz#13719. --- src/network/netdev/l2tp-tunnel.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/network/netdev/l2tp-tunnel.c b/src/network/netdev/l2tp-tunnel.c index c78b19ce93..abaa92fe47 100644 --- a/src/network/netdev/l2tp-tunnel.c +++ b/src/network/netdev/l2tp-tunnel.c @@ -629,9 +629,9 @@ int config_parse_l2tp_session_name( return 0; } - session->name = strdup(rvalue); - if (!session->name) - return -ENOMEM; + r = free_and_strdup(&session->name, rvalue); + if (r < 0) + return log_oom(); session = NULL; return 0;