diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-03-06 19:06:08 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-03-12 17:35:58 +0100 |
commit | bc612cd1cbc45da17f466f8fa8fcec6542164899 (patch) | |
tree | 7c432e72a207aaabc04cc162fdd0667bafe71db0 | |
parent | 259dd5872c8725e1383ae6e46e892fa68a604f89 (diff) | |
download | systemd-bc612cd1cbc45da17f466f8fa8fcec6542164899.tar.gz |
pid1: return varlink error on the right connection
(cherry picked from commit 8b0f54c9290564e8c27c9c8ac464cdcc2c659ad5)
-rw-r--r-- | src/core/core-varlink.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/core-varlink.c b/src/core/core-varlink.c index dd6c11ab4d..96b378da8e 100644 --- a/src/core/core-varlink.c +++ b/src/core/core-varlink.c @@ -142,7 +142,7 @@ static int vl_method_subscribe_managed_oom_cgroups( /* We only take one subscriber for this method so return an error if there's already an existing one. * This shouldn't happen since systemd-oomd is the only client of this method. */ if (FLAGS_SET(flags, VARLINK_METHOD_MORE) && m->managed_oom_varlink_request) - return varlink_error(m->managed_oom_varlink_request, VARLINK_ERROR_SUBSCRIPTION_TAKEN, NULL); + return varlink_error(link, VARLINK_ERROR_SUBSCRIPTION_TAKEN, NULL); r = json_build(&arr, JSON_BUILD_EMPTY_ARRAY); if (r < 0) @@ -188,6 +188,7 @@ static int vl_method_subscribe_managed_oom_cgroups( if (!FLAGS_SET(flags, VARLINK_METHOD_MORE)) return varlink_reply(link, v); + assert(!m->managed_oom_varlink_request); m->managed_oom_varlink_request = varlink_ref(link); return varlink_notify(m->managed_oom_varlink_request, v); } @@ -475,8 +476,7 @@ void manager_varlink_done(Manager *m) { assert(m); /* Send the final message if we still have a subscribe request open. */ - if (m->managed_oom_varlink_request) - m->managed_oom_varlink_request = varlink_close_unref(m->managed_oom_varlink_request); + m->managed_oom_varlink_request = varlink_close_unref(m->managed_oom_varlink_request); m->varlink_server = varlink_server_unref(m->varlink_server); } |