• R
    fix possible isatty false positives and unwanted device state changes · 2de85a98
    Rich Felker 提交于
    the equivalent checks for newly opened stdio output streams, used to
    determine buffering mode, are also fixed.
    
    on most archs, the TCGETS ioctl command shares a value with
    SNDCTL_TMR_TIMEBASE, part of the OSS sound API which was apparently
    used with certain MIDI and timer devices. for file descriptors
    referring to such a device, TCGETS will not fail with ENOTTY as
    expected; it may produce a different error, or may succeed, and if it
    succeeds it changes the mode of the device. while it's unlikely that
    such devices are in use, this is in principle very harmful behavior
    for an operation which is supposed to do nothing but query whether the
    fd refers to a tty.
    
    TIOCGWINSZ, used to query logical window size for a terminal, was
    chosen as an alternate ioctl to perform the isatty check. it does not
    share a value with any other ioctl commands, and it succeeds on any
    tty device.
    
    this change also cleans up strace output to be less ugly and
    misleading.
    2de85a98
__fdopen.c 1.5 KB