summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen W. Taylor <otaylor@fishsoup.net>2015-08-18 14:41:24 -0400
committerOwen W. Taylor <otaylor@fishsoup.net>2015-08-18 15:25:57 -0400
commit2235695335c56cf91df8dbae0ea49889b209da17 (patch)
tree2341e127f9c8b891f2fe6d2443ed197d602ce455
parent9a877fd409b91c43c301d293ad682a8454bcdbcf (diff)
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.
-rw-r--r--src/login/logind-session.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/login/logind-session.c b/src/login/logind-session.c
index e75c7c042e..902abe0e42 100644
--- a/src/login/logind-session.c
+++ b/src/login/logind-session.c
@@ -986,7 +986,7 @@ static int session_open_vt(Session *s) {
return s->vtfd;
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)
return log_error_errno(errno, "cannot open VT %s of session %s: %m", path, s->id);