Fix permission of slave device on devpts if necessary.

If devptr is misconfigured the slave device permission after grantpt
might not be 0620.  BZ #10166
This commit is contained in:
Ulrich Drepper 2009-06-15 22:56:51 -07:00
parent 395a37e379
commit 292e3abebf
2 changed files with 15 additions and 3 deletions

View File

@ -1,5 +1,10 @@
2009-06-15 Ulrich Drepper <drepper@redhat.com>
[BZ #10166]
* sysdeps/unix/sysv/linux/grantpt.c: If slave device is on devpts or
devfs, the mode might not be correct. Check it and return only if it
is correct.
[BZ #10183]
* posix/tst-cpucount.c: Don't try more than CPU_SETSIZE bits.

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
/* Copyright (C) 1998, 1999, 2001, 2002, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -70,9 +70,16 @@ grantpt (int fd)
return -1;
/* If the slave pseudo terminal lives on a `devpts' filesystem, the
ownership and access permission are already set. */
ownership is already set and the access permission might already
be set. */
if (fsbuf.f_type == DEVPTS_SUPER_MAGIC || fsbuf.f_type == DEVFS_SUPER_MAGIC)
return 0;
{
struct stat64 st;
if (fstat (fd, &st) == 0
&& (st.st_mode & ACCESSPERMS) == (S_IRUSR|S_IWUSR|S_IWGRP))
return 0;
}
return __unix_grantpt (fd);
}