diff options
Diffstat (limited to 'src/misc/pty.c')
| -rw-r--r-- | src/misc/pty.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/src/misc/pty.c b/src/misc/pty.c index 6ca33e31..9e201ef3 100644 --- a/src/misc/pty.c +++ b/src/misc/pty.c @@ -2,7 +2,9 @@  #include <sys/ioctl.h>  #include <stdio.h>  #include <fcntl.h> +#include <errno.h>  #include "libc.h" +#include "syscall.h"  int posix_openpt(int flags)  { @@ -22,10 +24,11 @@ int unlockpt(int fd)  int __ptsname_r(int fd, char *buf, size_t len)  { -	int pty; +	int pty, err;  	if (!buf) len = 0; -	return -( ioctl (fd, TIOCGPTN, &pty) < 0 -		|| snprintf(buf, len, "/dev/pts/%d", pty) >= len ); +	if ((err = __syscall(SYS_ioctl, fd, TIOCGPTN, &pty))) return err; +	if (snprintf(buf, len, "/dev/pts/%d", pty) >= len) return ERANGE; +	return 0;  }  weak_alias(__ptsname_r, ptsname_r); | 
