From adb3a45d9a1cebdec30406cc2c04503fc5e735be Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 1 Jul 2013 02:47:11 +0200 Subject: [PATCH] scope: properly implement passive validity checking of PIDs field when creating transient scopes --- src/core/dbus-scope.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/core/dbus-scope.c b/src/core/dbus-scope.c index 30b9c0033..bddf8f475 100644 --- a/src/core/dbus-scope.c +++ b/src/core/dbus-scope.c @@ -93,6 +93,7 @@ static int bus_scope_set_transient_property( if (streq(name, "PIDs")) { DBusMessageIter sub; + unsigned n; if (dbus_message_iter_get_arg_type(i) != DBUS_TYPE_ARRAY || dbus_message_iter_get_element_type(i) != DBUS_TYPE_UINT32) @@ -111,14 +112,17 @@ static int bus_scope_set_transient_property( if (pid <= 1) return -EINVAL; - r = set_put(s->pids, LONG_TO_PTR(pid)); - if (r < 0 && r != -EEXIST) - return r; + if (mode != UNIT_CHECK) { + r = set_put(s->pids, LONG_TO_PTR(pid)); + if (r < 0 && r != -EEXIST) + return r; + } dbus_message_iter_next(&sub); + n++; } - if (set_size(s->pids) <= 0) + if (n <= 0) return -EINVAL; return 1; -- 2.30.2