diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-03-05 15:16:18 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-03-12 18:22:19 +0100 |
commit | b4d6f06c78ceb5208ed83d01ef72c2c0de701b6f (patch) | |
tree | 4d8abf2ccade2c766a9550838abf0576c1d97d3d | |
parent | 431a7d069b55866b4802a29eb5d6e8ccb5f6b9fd (diff) | |
download | systemd-b4d6f06c78ceb5208ed83d01ef72c2c0de701b6f.tar.gz |
sd-bus: fix memleak in failure path in bus_match_parse()
(cherry picked from commit 8df3f44c90a3e479b717e8cc4bb26c95ebbc5cb0)
(cherry picked from commit 3a383fed01e275b05955e6b2e2626363816cdd62)
-rw-r--r-- | src/libsystemd/sd-bus/bus-match.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/libsystemd/sd-bus/bus-match.c b/src/libsystemd/sd-bus/bus-match.c index 9066f68e35..6a2f462760 100644 --- a/src/libsystemd/sd-bus/bus-match.c +++ b/src/libsystemd/sd-bus/bus-match.c @@ -743,12 +743,16 @@ int bus_match_parse( p += strspn(p, " "); eq = strchr(p, '='); - if (!eq) - return -EINVAL; + if (!eq) { + r = -EINVAL; + goto fail; + } t = bus_match_node_type_from_string(p, eq - p); - if (t < 0) - return -EINVAL; + if (t < 0) { + r = -EINVAL; + goto fail; + } quoted = eq[1] == '\''; |