From: Djalal Harouni Date: Sat, 21 Dec 2013 14:49:46 +0000 (+0100) Subject: loginctl: correctly show session IDs on session-status X-Git-Tag: v209~754 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=016284c352084cdbf856905704070c1f30970f58;hp=841aa8c0b484b96654b95d3c4e936e37da4c7dda loginctl: correctly show session IDs on session-status Commit f8f14b3654bcd introduced a regression that makes loginctl session-status to not show the correct session ID(s) In print_session_status_info() the map[] array, element "Seat" receives the offset of the "id" in "SessionStatusInfo" struct instead of the offset of the "seat" member. This will cause prop_map_first_of_struct() function to overwrite the SessionStatusInfo.id memory with seats if there are any. Fix this typo by using the "seat" member. Before: - tixxdz (1000) Since: Sat 2013-12-21 10:07:23 CET; 5h 26min ago Leader: 1265 (sshd) After: 1 - tixxdz (1000) Since: Sat 2013-12-21 10:07:23 CET; 5h 26min ago Leader: 1265 (sshd) --- diff --git a/src/login/loginctl.c b/src/login/loginctl.c index 7e6406647..914f31699 100644 --- a/src/login/loginctl.c +++ b/src/login/loginctl.c @@ -372,7 +372,7 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li { "Remote", "b", NULL, offsetof(SessionStatusInfo, remote) }, { "Timestamp", "t", NULL, offsetof(SessionStatusInfo, timestamp) }, { "User", "(uo)", prop_map_first_of_struct, offsetof(SessionStatusInfo, uid) }, - { "Seat", "(so)", prop_map_first_of_struct, offsetof(SessionStatusInfo, id) }, + { "Seat", "(so)", prop_map_first_of_struct, offsetof(SessionStatusInfo, seat) }, {} }; @@ -419,7 +419,7 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li printf("\n"); } - if (i.seat) { + if (!isempty(i.seat)) { printf("\t Seat: %s", i.seat); if (i.vtnr > 0)