diff options
author | Lennart Poettering <lennart@poettering.net> | 2019-03-15 17:33:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-15 17:33:48 +0100 |
commit | 95658673a0889c26cb7d3c70b9e8a5e9ff09784a (patch) | |
tree | ce16ec9b29ac97708f9e594887926023daa801ab | |
parent | 4209f6619d6bbf7aaac7e4d68a5a8f00fd8c872d (diff) | |
parent | 50969cff60e86600034ce88bfdb539a3f9f240ad (diff) | |
download | systemd-95658673a0889c26cb7d3c70b9e8a5e9ff09784a.tar.gz |
Merge pull request #12016 from yuwata/fix-two-memleaks-found-by-oss-fuzz
Fix two memleaks found by oss fuzz
-rw-r--r-- | src/network/netdev/l2tp-tunnel.c | 6 | ||||
-rw-r--r-- | src/network/netdev/wireguard.c | 8 | ||||
-rw-r--r-- | src/nspawn/nspawn-mount.c | 2 | ||||
-rw-r--r-- | test/fuzz/fuzz-netdev-parser/oss-fuzz-13719 | 6 | ||||
-rw-r--r-- | test/fuzz/fuzz-nspawn-settings/oss-fuzz-13691 | 2 |
5 files changed, 16 insertions, 8 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; 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); 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; 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 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 |