write(1) needs to strip off the leading /dev/ from the tty name for the
current tty as returned from ttyname(3) so it can try to avoid writing to the current tty if possible. Previously, it did this by trimming off any leading directory (effectively performing a basename(3) on the path returned from ttyname(3)). However, this chopped off too much of the path for ttys who have directories in their name such as pts(4). Instead, just strip off the leading /dev/ from the path returned by ttyname(3). This fixes write(1) when using pts(4). MFC after: 1 week Reported by: rwatson
This commit is contained in:
parent
d518b2ba09
commit
a4cc298ac9
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=173572
@ -76,7 +76,6 @@ int utmp_chk(char *, char *);
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
char *cp;
|
||||
time_t atime;
|
||||
uid_t myuid;
|
||||
int msgsok, myttyfd;
|
||||
@ -100,8 +99,8 @@ main(int argc, char **argv)
|
||||
errx(1, "can't find your tty");
|
||||
if (!(mytty = ttyname(myttyfd)))
|
||||
errx(1, "can't find your tty's name");
|
||||
if ((cp = rindex(mytty, '/')))
|
||||
mytty = cp + 1;
|
||||
if (!strncmp(mytty, _PATH_DEV, strlen(_PATH_DEV)))
|
||||
mytty += strlen(_PATH_DEV);
|
||||
if (term_chk(mytty, &msgsok, &atime, 1))
|
||||
exit(1);
|
||||
if (!msgsok)
|
||||
|
Loading…
Reference in New Issue
Block a user