X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-dbus.c;h=d88636f7471a4b1afa2da1162f3a574d5222fddb;hb=2bd94bfa67be6bc52fd525396fd87b4a6f323bed;hp=b9296b5e5cc60185cd50a05d237f564eaf6c61ae;hpb=fe1d018e7c206a47e6d912b43017a1c056c2c4c9;p=elogind.git diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index b9296b5e5..d88636f74 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -2608,11 +2608,8 @@ int match_job_removed(sd_bus_message *message, void *userdata, sd_bus_error *err } session = hashmap_get(m->session_units, unit); - if (session) { - - if (streq_ptr(path, session->scope_job)) - session->scope_job = mfree(session->scope_job); - + if (session && streq_ptr(path, session->scope_job)) { + session->scope_job = mfree(session->scope_job); session_jobs_reply(session, unit, result); session_save(session); @@ -2621,7 +2618,9 @@ int match_job_removed(sd_bus_message *message, void *userdata, sd_bus_error *err } user = hashmap_get(m->user_units, unit); - if (user) { + if (user && + (streq_ptr(path, user->service_job) || + streq_ptr(path, user->slice_job))) { if (streq_ptr(path, user->service_job)) user->service_job = mfree(user->service_job);