summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-03-05 15:16:18 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-03-12 18:22:19 +0100
commitb4d6f06c78ceb5208ed83d01ef72c2c0de701b6f (patch)
tree4d8abf2ccade2c766a9550838abf0576c1d97d3d
parent431a7d069b55866b4802a29eb5d6e8ccb5f6b9fd (diff)
downloadsystemd-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.c12
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] == '\'';