diff options
author | Sven Eden <yamakuzure@gmx.net> | 2018-06-19 23:32:59 +0200 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2018-06-29 07:12:51 +0200 |
commit | 4f703de664738f58bc92834f2cd75234254eb07f (patch) | |
tree | b24763391a964c0827ccf79f09b3727a82a43c7d /src/update-utmp | |
parent | f126109b3cdd134469fb1d976e81f943c90a8d4f (diff) |
Fix accidental dbus closing in update_utmp() (#50)
When updating utmp on reboot and poweroff, the managers dbus
connection was copied and then closed and invalidated.
As the utmp update in elogind does not need a dbus connection at all,
the copying and the closing was removed.
This fixes elogind to become unresponsive when calling for poweroff,
halt or reboot.
Closes: #50
Diffstat (limited to 'src/update-utmp')
-rw-r--r-- | src/update-utmp/update-utmp.c | 7 | ||||
-rw-r--r-- | src/update-utmp/update-utmp.h | 2 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/update-utmp/update-utmp.c b/src/update-utmp/update-utmp.c index 0111dc6a0..2bd55a33c 100644 --- a/src/update-utmp/update-utmp.c +++ b/src/update-utmp/update-utmp.c @@ -237,7 +237,7 @@ static int on_runlevel(Context *c) { #if 0 /// elogind needs this to be a callable function int main(int argc, char *argv[]) { #else -void update_utmp(int argc, char* argv[], sd_bus *bus) { +void update_utmp(int argc, char* argv[]) { #endif // 0 Context c = { #if HAVE_AUDIT @@ -265,7 +265,6 @@ void update_utmp(int argc, char* argv[], sd_bus *bus) { #else assert(2 == argc); assert(argv[1]); - assert(bus); #endif // 0 #if HAVE_AUDIT @@ -300,7 +299,6 @@ void update_utmp(int argc, char* argv[], sd_bus *bus) { finish: #else - c.bus = bus; if (streq(argv[1], "reboot")) (void)on_reboot(&c); else if (streq(argv[1], "shutdown")) @@ -311,8 +309,9 @@ finish: audit_close(c.audit_fd); #endif - sd_bus_flush_close_unref(c.bus); #if 0 /// UNNEEDED by elogind + sd_bus_flush_close_unref(c.bus); + return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; #endif // 0 } diff --git a/src/update-utmp/update-utmp.h b/src/update-utmp/update-utmp.h index 7d7d43101..97b046e7e 100644 --- a/src/update-utmp/update-utmp.h +++ b/src/update-utmp/update-utmp.h @@ -6,7 +6,7 @@ * Make the old main() from update-utmp.c visible as update_utmp() * ******************************************************************/ -void update_utmp(int argc, char* argv[], sd_bus *bus); +void update_utmp(int argc, char* argv[]); #endif // ELOGIND_SRC_UPDATE_UTMP_UPDATE_UTMP_H_INCLUDED |