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-09 13:49:02 +0100 |
commit | 8b0f54c9290564e8c27c9c8ac464cdcc2c659ad5 (patch) | |
tree | 2240da2ed7d3db480f3c6fbfbc50afdc9aeaf939 /src/core/core-varlink.c | |
parent | 1d2e9c48e585382e04ea4e6ebbd474dd533b8d08 (diff) | |
download | systemd-8b0f54c9290564e8c27c9c8ac464cdcc2c659ad5.tar.gz |
pid1: return varlink error on the right connection
Diffstat (limited to 'src/core/core-varlink.c')
-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 d695106658..b3df8cd893 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); } |