chiark / gitweb /
systemctl: make sure we terminate the bus connection first, and then close the pager...
authorLennart Poettering <lennart@poettering.net>
Thu, 16 Jun 2016 13:29:16 +0000 (15:29 +0200)
committerSven Eden <yamakuzure@gmx.net>
Fri, 16 Jun 2017 08:13:01 +0000 (10:13 +0200)
commit08b0b97aed0c478215d563b9e29b5333e19aef45
tree173e1c4e235042fd77732dc0e27ebf3410125e94
parent1443d4b2e7210724b40411b108b1e2d30063ca5d
systemctl: make sure we terminate the bus connection first, and then close the pager (#3550)

If "systemctl -H" is used, let's make sure we first terminate the bus
connection, and only then close the pager. If done in this order ssh will get
an EOF on stdin (as we speak D-Bus through ssh's stdin/stdout), and then
terminate. This makes sure the standard error we were invoked on is released by
ssh, and only that makes sure we don't deadlock on the pager which waits for
all clients closing its input pipe.

(Similar fixes for the various other xyzctl tools that support both pagers and
-H)

Fixes: #3543
src/login/loginctl.c