summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/syscalls.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r--winsup/cygwin/syscalls.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 5bfaa0c08..514d458fd 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -2906,10 +2906,23 @@ getpgrp (void)
extern "C" char *
ptsname (int fd)
{
+ static char buf[TTY_NAME_MAX];
+ return ptsname_r (fd, buf, sizeof (buf)) == 0 ? buf : NULL;
+}
+
+extern "C" int
+ptsname_r (int fd, char *buf, size_t buflen)
+{
+ if (!buf)
+ {
+ set_errno (EINVAL);
+ return EINVAL;
+ }
+
cygheap_fdget cfd (fd);
if (cfd < 0)
return 0;
- return (char *) (cfd->ptsname ());
+ return cfd->ptsname_r (buf, buflen);
}
static int __stdcall