[hurd,commited] hurd: make ptsname fail with ENOTTY on non-master-pty

Message ID 20201113235416.1920257-1-samuel.thibault@ens-lyon.org
State Committed, archived
Headers
Series [hurd,commited] hurd: make ptsname fail with ENOTTY on non-master-pty |

Commit Message

Samuel Thibault Nov. 13, 2020, 11:54 p.m. UTC
  ---
 sysdeps/mach/hurd/ptsname.c | 8 ++++++++
 1 file changed, 8 insertions(+)
  

Patch

diff --git a/sysdeps/mach/hurd/ptsname.c b/sysdeps/mach/hurd/ptsname.c
index 065ba2a268..2bcbe7b03f 100644
--- a/sysdeps/mach/hurd/ptsname.c
+++ b/sysdeps/mach/hurd/ptsname.c
@@ -46,6 +46,14 @@  __ptsname_internal (int fd, char *buf, size_t buflen, struct stat64 *stp)
   string_t peername;
   size_t len;
   error_t err;
+  int ttype;
+
+  if (HURD_DPORT_USE (fd, __term_get_bottom_type (port, &ttype)) == 0)
+    {
+      /* get_bottom_type suceeded, this is the slave side.  */
+      errno = ENOTTY;
+      return ENOTTY;
+    }
 
   if (err = HURD_DPORT_USE (fd, __term_get_peername (port, peername)))
     {