mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-18 12:16:13 +08:00
bsd unlockpt: unlockpt needs to fail with EINVAL, not ENOTTY
The EINVAL error code is mandated by POSIX, while ptsname_r returns ENOTTY, so we need to translate.
This commit is contained in:
parent
aa11ab9953
commit
dfe2e7a562
@ -20,6 +20,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
|
||||
|
||||
/* Unlock the slave pseudo terminal associated with the master pseudo
|
||||
@ -31,6 +32,10 @@ unlockpt (int fd)
|
||||
|
||||
/* BSD doesn't have a lock, but it does have `revoke'. */
|
||||
if (__ptsname_r (fd, buf, sizeof (buf)))
|
||||
return -1;
|
||||
{
|
||||
if (errno == ENOTTY)
|
||||
__set_errno (EINVAL);
|
||||
return -1;
|
||||
}
|
||||
return __revoke (buf);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user