From: Mike Yuan Date: Thu, 30 May 2024 12:44:58 +0000 (+0800) Subject: core/dbus-manager: only allow Freeze/ThawUnit() if loaded X-Git-Tag: v256-rc4~74^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=47266ea224a3b43b364d6f80e3ec0315fadc699a;p=thirdparty%2Fsystemd.git core/dbus-manager: only allow Freeze/ThawUnit() if loaded --- diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c index 2aa43361215..2515f54adac 100644 --- a/src/core/dbus-manager.c +++ b/src/core/dbus-manager.c @@ -834,11 +834,13 @@ static int method_clean_unit(sd_bus_message *message, void *userdata, sd_bus_err } static int method_freeze_unit(sd_bus_message *message, void *userdata, sd_bus_error *error) { - return method_generic_unit_operation(message, userdata, error, bus_unit_method_freeze, 0); + /* Only active units can be frozen, which must be properly loaded already */ + return method_generic_unit_operation(message, userdata, error, bus_unit_method_freeze, GENERIC_UNIT_VALIDATE_LOADED); } static int method_thaw_unit(sd_bus_message *message, void *userdata, sd_bus_error *error) { - return method_generic_unit_operation(message, userdata, error, bus_unit_method_thaw, 0); + /* Same as freeze above */ + return method_generic_unit_operation(message, userdata, error, bus_unit_method_thaw, GENERIC_UNIT_VALIDATE_LOADED); } static int method_reset_failed_unit(sd_bus_message *message, void *userdata, sd_bus_error *error) {