X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Flogs-show.c;h=61c3652bd5ae32943d020f3f4e98f241071de9f9;hp=b24bce50c06710fc018816cd2eed722c9bfb45b8;hb=c50e4f95d8cfcd21bde2b0d1ff24b4de8fef4976;hpb=e04b0cdb9001edec916216e1fd7b6e814bc46fc3 diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index b24bce50c..61c3652bd 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -1117,7 +1117,7 @@ int add_matches_for_user_unit(sd_journal *j, const char *unit, uid_t uid) { static int get_boot_id_for_machine(const char *machine, sd_id128_t *boot_id) { _cleanup_close_pipe_ int pair[2] = { -1, -1 }; - _cleanup_close_ int nsfd = -1, rootfd = -1; + _cleanup_close_ int pidnsfd = -1, mntnsfd = -1, rootfd = -1; pid_t pid, child; siginfo_t si; char buf[37]; @@ -1134,7 +1134,7 @@ static int get_boot_id_for_machine(const char *machine, sd_id128_t *boot_id) { if (r < 0) return r; - r = namespace_open(pid, &nsfd, &rootfd); + r = namespace_open(pid, &pidnsfd, &mntnsfd, &rootfd); if (r < 0) return r; @@ -1151,7 +1151,7 @@ static int get_boot_id_for_machine(const char *machine, sd_id128_t *boot_id) { close_nointr_nofail(pair[0]); pair[0] = -1; - r = namespace_enter(nsfd, rootfd); + r = namespace_enter(pidnsfd, mntnsfd, rootfd); if (r < 0) _exit(EXIT_FAILURE); @@ -1174,14 +1174,14 @@ static int get_boot_id_for_machine(const char *machine, sd_id128_t *boot_id) { close_nointr_nofail(pair[1]); pair[1] = -1; - k = recv(pair[0], buf, 36, 0); - if (k != 36) - return -EIO; - r = wait_for_terminate(child, &si); if (r < 0 || si.si_code != CLD_EXITED || si.si_status != EXIT_SUCCESS) return r < 0 ? r : -EIO; + k = recv(pair[0], buf, 36, 0); + if (k != 36) + return -EIO; + buf[36] = 0; r = sd_id128_from_string(buf, boot_id); if (r < 0)