Cygwin: ptsname_r: always return an error number on failure

Return EBADF on a bad file descriptor.  Previously 0 was returned, in
violation of the requirement in
https://man7.org/linux/man-pages/man3/ptsname_r.3.html that an error
number should be returned on failure.

We are intentionally deviating from Linux, on which ENOTTY is
returned.

Addresses: https://lists.gnu.org/archive/html/bug-gnulib/2021-01/msg00245.html
This commit is contained in:
Ken Brown 2021-01-20 12:01:13 -05:00
parent 4aefad2bb8
commit a60a4501b7
2 changed files with 4 additions and 1 deletions

View File

@ -52,3 +52,6 @@ Bug Fixes
- Fix the errno when a path contains .. and the prefix exists but is
not a directory.
Addresses: https://lists.gnu.org/archive/html/bug-gnulib/2021-01/msg00214.html
- Fix the return value when ptsname_r(3) is called with a bad file descriptor
Addresses: https://lists.gnu.org/archive/html/bug-gnulib/2021-01/msg00245.html

View File

@ -3392,7 +3392,7 @@ ptsname_r (int fd, char *buf, size_t buflen)
cygheap_fdget cfd (fd);
if (cfd < 0)
return 0;
return EBADF;
return cfd->ptsname_r (buf, buflen);
}