[Bug 285394] sysutils/consolekit2 seems to use wrong tty
- In reply to: bugzilla-noreply_a_freebsd.org: "[Bug 285394] sysutils/consolekit2 seems to use wrong tty"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 18 Mar 2025 19:10:32 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285394 --- Comment #12 from Andriy Gapon <avg@FreeBSD.org> --- (In reply to Gleb Popov from comment #11) That's a very interesting finding. Now things are less mysterious. Looking at vtterm_ioctl (I assume that we all use vt driver, not sc), CONS_GETVERS (used by ck_fd_is_a_console) should succeed for any terminal. So, I wonder if there could be some sort of a race. E.g., if the controlling terminal is revoked before CONS_GETVERS (or even before opening /dev/tty[*]) then the ioctl fails and the control flow proceeds to using /dev/console and everything is okay. But if /dev/tty is still valid when CONS_GETVERS is issued, then ConsolKit proceeds to using it, but then it gets revoked and things go bad. But I am conjecturing now. Need to do more experiments. To answer your question, I am sure that /dev/console would work the same or even better than /dev/ttyv0 that my patch currently forces. But I am going to test it for 100% confidence. [*] /dev/tty is implemented as a special "ctty" device, see sys/kern/tty_tty.c. If a process opening /dev/tty has a controlling terminal, then the opened device is actually a clone of that terminal device. If the process does not have a controlling terminal, then the cloned device is a clone of ctty special device and that device cannot be really opened. -- You are receiving this mail because: You are the assignee for the bug.