mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-30 12:31:53 +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 <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
|
||||||
/* Unlock the slave pseudo terminal associated with the master pseudo
|
/* 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'. */
|
/* BSD doesn't have a lock, but it does have `revoke'. */
|
||||||
if (__ptsname_r (fd, buf, sizeof (buf)))
|
if (__ptsname_r (fd, buf, sizeof (buf)))
|
||||||
return -1;
|
{
|
||||||
|
if (errno == ENOTTY)
|
||||||
|
__set_errno (EINVAL);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
return __revoke (buf);
|
return __revoke (buf);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user