From: Luca Boccassi Date: Mon, 6 Jan 2025 18:16:29 +0000 (+0000) Subject: core: fix assert when AddDependencyUnitFiles is called with invalid parameter X-Git-Tag: v258-rc1~1693 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d87dc74e8f1a30d72a0f202e411400bab34ab55a;p=thirdparty%2Fsystemd.git core: fix assert when AddDependencyUnitFiles is called with invalid parameter unit_file_add_dependency() asserts, so check before calling it that the type is expected, or return EINVAL to the caller. root@localhost:~# busctl call org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager AddDependencyUnitFiles "asssbb" 0 uwhatm8 After 1 1 Broadcast message from systemd-journald@localhost (Mon 2025-01-06 18:12:14 UTC): systemd[1]: Caught , from our own process. Fixes https://github.com/systemd/systemd/issues/35882 --- diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c index 47d919a014d..ed1f1241826 100644 --- a/src/core/dbus-manager.c +++ b/src/core/dbus-manager.c @@ -2674,7 +2674,7 @@ static int method_add_dependency_unit_files(sd_bus_message *message, void *userd flags = unit_file_bools_to_flags(runtime, force); dep = unit_dependency_from_string(type); - if (dep < 0) + if (dep < 0 || !IN_SET(dep, UNIT_WANTS, UNIT_REQUIRES)) return -EINVAL; r = unit_file_add_dependency(m->runtime_scope, flags, NULL, l, target, dep, &changes, &n_changes);