diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2020-11-08 14:06:56 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2020-11-08 14:06:56 +0000 |
commit | dfe2e7a5627f2c7bdc298fc714dbf12f7666fa2a (patch) | |
tree | d8aa01f9d6de9672feec3741118be9e6ca030129 | |
parent | aa11ab99530aea57fa2b8fa934a7c9dd0bfa9131 (diff) | |
download | glibc-dfe2e7a5627f2c7bdc298fc714dbf12f7666fa2a.tar.gz glibc-dfe2e7a5627f2c7bdc298fc714dbf12f7666fa2a.tar.xz glibc-dfe2e7a5627f2c7bdc298fc714dbf12f7666fa2a.zip |
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.
-rw-r--r-- | sysdeps/unix/bsd/unlockpt.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sysdeps/unix/bsd/unlockpt.c b/sysdeps/unix/bsd/unlockpt.c index d8b7f0cae7..e609685c2f 100644 --- a/sysdeps/unix/bsd/unlockpt.c +++ b/sysdeps/unix/bsd/unlockpt.c @@ -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); } |