mirror of
https://github.com/systemd/systemd.git
synced 2024-11-08 11:27:32 +03:00
logind: use open_terminal() instead of open()
The open_terminal() function adds retries in case a terminal is in the process of being closed when we open it, and should generally be used to open a terminal. We especially need it for code that a subsequent commit adds that reopens the terminal at session shut-down time; such races would be more likely in that case. Found by Ray Strode.
This commit is contained in:
parent
9a877fd409
commit
2235695335
@ -986,7 +986,7 @@ static int session_open_vt(Session *s) {
|
|||||||
return s->vtfd;
|
return s->vtfd;
|
||||||
|
|
||||||
sprintf(path, "/dev/tty%u", s->vtnr);
|
sprintf(path, "/dev/tty%u", s->vtnr);
|
||||||
s->vtfd = open(path, O_RDWR | O_CLOEXEC | O_NONBLOCK | O_NOCTTY);
|
s->vtfd = open_terminal(path, O_RDWR | O_CLOEXEC | O_NONBLOCK | O_NOCTTY);
|
||||||
if (s->vtfd < 0)
|
if (s->vtfd < 0)
|
||||||
return log_error_errno(errno, "cannot open VT %s of session %s: %m", path, s->id);
|
return log_error_errno(errno, "cannot open VT %s of session %s: %m", path, s->id);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user