https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191936
Bug ID: 191936 Summary: ttyname_r failing isatty always returns ENOTTY instead of the actual error Product: Base System Version: 11.0-CURRENT Hardware: Any OS: Any Status: Needs Triage Severity: Affects Some People Priority: --- Component: bin Assignee: freebsd-bugs@FreeBSD.org Reporter: yaneurab...@gmail.com Here's the bug I was trying to find with bug 191931 with ttyname_r (it always assumes that isatty failing means ENOTTY): 66 /* Must be a terminal. */ 67 if (!isatty(fd)) 68 return (ENOTTY); It's always assuming that isatty failing means ENOTTY: # truss ./t_ttyname ttyname_r_err mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366144512 (0x80061c000) issetugid(0x80081ca20,0x7fffffffefb2,0x40,0x0,0xffff80080081da6e,0x0) = 0 (0x0) lstat("/etc",{ mode=drwxr-xr-x ,inode=3129984,size=2560,blksize=32768 }) = 0 (0x0) lstat("/etc/libmap.conf",{ mode=-rw-r--r-- ,inode=3130014,size=47,blksize=32768 }) = 0 (0x0) open("/etc/libmap.conf",O_CLOEXEC,01760) = 3 (0x3) fstat(3,{ mode=-rw-r--r-- ,inode=3130014,size=47,blksize=32768 }) = 0 (0x0) mmap(0x0,47,PROT_READ,MAP_PRIVATE,3,0x0) = 34366177280 (0x800624000) close(3) = 0 (0x0) lstat("/usr",{ mode=drwxr-xr-x ,inode=1364352,size=512,blksize=32768 }) = 0 (0x0) lstat("/usr/local",{ mode=drwxr-xr-x ,inode=1364363,size=512,blksize=32768 }) = 0 (0x0) lstat("/usr/local/etc",{ mode=drwxr-xr-x ,inode=1453098,size=512,blksize=32768 }) = 0 (0x0) lstat("/usr/local/etc/libmap.d",0x7fffffffc748) ERR#2 'No such file or directory' munmap(0x800624000,47) = 0 (0x0) access("/usr/lib/private/libatf-c.so.0",0) = 0 (0x0) open("/usr/lib/private/libatf-c.so.0",O_CLOEXEC,030403770) = 3 (0x3) fstat(3,{ mode=-r--r--r-- ,inode=1451722,size=90520,blksize=32768 }) = 0 (0x0) mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34366177280 (0x800624000) mmap(0x0,2191360,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34368249856 (0x80081e000) mmap(0x80081e000,86016,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34368249856 (0x80081e000) mmap(0x800a33000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x15000) = 34370433024 (0x800a33000) mmap(0x800a34000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,-1,0x0) = 34370437120 (0x800a34000) munmap(0x800624000,4096) = 0 (0x0) close(3) = 0 (0x0) access("/usr/lib/private/libc.so.7",0) ERR#2 'No such file or directory' open("/var/run/ld-elf.so.hints",O_CLOEXEC,037777754764) = 3 (0x3) read(3,"Ehnt\^A\0\0\0\M^@\0\0\0B\0\0\0\0"...,128) = 128 (0x80) lseek(3,0x80,SEEK_SET) = 128 (0x80) read(3,"/lib:/usr/lib:/usr/lib/compat:/u"...,66) = 66 (0x42) close(3) = 0 (0x0) access("/lib/libc.so.7",0) = 0 (0x0) open("/lib/libc.so.7",O_CLOEXEC,030403770) = 3 (0x3) fstat(3,{ mode=-r--r--r-- ,inode=722339,size=1440008,blksize=32768 }) = 0 (0x0) mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34366177280 (0x800624000) mmap(0x0,3637248,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34370441216 (0x800a35000) mmap(0x800a35000,1396736,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34370441216 (0x800a35000) mmap(0x800d89000,45056,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x154000) = 34373931008 (0x800d89000) mmap(0x800d94000,102400,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,-1,0x0) = 34373976064 (0x800d94000) munmap(0x800624000,4096) = 0 (0x0) close(3) = 0 (0x0) munmap(0x800623000,4096) = 0 (0x0) mmap(0x0,40960,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366173184 (0x800623000) munmap(0x800626000,28672) = 0 (0x0) mmap(0x0,102400,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366185472 (0x800626000) sysarch(0x81,0x7fffffffe128,0x4,0x0,0xffffffffff8ae610,0x8080808080808080) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) readlink("/etc/malloc.conf",0x7fffffffd850,1024) ERR#2 'No such file or directory' issetugid(0x0,0x7fffffffd850,0xffffffffffffffff,0x2,0x3a,0xffffffff0fffffff) = 0 (0x0) mmap(0x0,4194304,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34374078464 (0x800dad000) munmap(0x800dad000,4194304) = 0 (0x0) mmap(0x0,8384512,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34374078464 (0x800dad000) munmap(0x800dad000,2437120) = 0 (0x0) munmap(0x801400000,1753088) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) mmap(0x0,4194304,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34380709888 (0x801400000) madvise(0x801406000,0x1000,0x5,0x800dab8f8,0x800dab8f8,0x0) = 0 (0x0) madvise(0x801408000,0x1000,0x5,0x800dab8f8,0x800dab8f8,0x7fffffffcc90) = 0 (0x0) __getcwd("/mnt/freebsd-src/lib/libc/tests/gen",1024) = 0 (0x0) lstat("/mnt/freebsd-src/lib/libc/tests/gen/./t_ttyname",{ mode=-rwxr-xr-x ,inode=893015,size=13564,blksize=4096 }) = 0 (0x0) pathconf("/dev/",_PC_NAME_MAX) = 255 (0xff) t_ttyname: WARNING: Running test cases without atf-run(1) is unsupported write(2,"t_ttyname: WARNING: Running test"...,73) = 73 (0x49) t_ttyname: WARNING: No isolation nor timeout control is being applied; you may get unexpected failures; see atf-test-case(4) write(2,"t_ttyname: WARNING: No isolation"...,125) = 125 (0x7d) ioctl(0,TIOCGETA,0xffffd560) = 0 (0x0) ioctl(0,TIOCGETA,0xffffd530) = 0 (0x0) ioctl(-1,TIOCGETA,0xffffd530) ERR#9 'Bad file descriptor' failed: t_ttyname.c:111: rv == EBADF not met writev(0x1,0x7fffffffcf50,0x4,0x800a339f0,0xfefefefefefefeff,0x8080808080808080) = 45 (0x2d) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) process exit, rval = 1 -- You are receiving this mail because: You are the assignee for the bug. _______________________________________________ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"