Skip to content

winpty 0.3.0

Compare
Choose a tag to compare
@rprichard rprichard released this 20 May 23:18
· 144 commits to master since this release

User-visible changes:

  • The UNIX adapter is renamed from console.exe to winpty.exe to be
    consistent with MSYS2. The name winpty.exe is less likely to conflict
    with another program and is easier to search for online (e.g. for someone
    unfamiliar with winpty).
  • The UNIX adapter now clears the TERM variable.
    #43
  • An escape character appearing in a console screen buffer cell is converted
    to a '?'.
    #47

Bug fixes:

  • A major bug affecting XP users was fixed.
    #67
  • Fixed an incompatibility with ConEmu where winpty hung if ConEmu's
    "Process 'start'" feature was enabled.
    #70
  • Fixed a bug where cmd.exe sometimes printed the message,
    Not enough storage is available to process this command..
    #74

Many changes internally:

  • The codebase is switched from C++03 to C++11 and uses exceptions internally.
    No exceptions are thrown across the C APIs defined in winpty.h.
  • This version drops support for the original MinGW compiler packaged with
    Cygwin (i686-pc-mingw32-g++). The MinGW-w64 compiler is still supported,
    as is the MinGW distributed at mingw.org. Compiling with MSVC now requires
    MSVC 2013 or newer. Windows XP is still supported.
    ec3eae8df5
  • Pipe security is improved. winpty works harder to produce unique pipe names
    and includes a random component in the name. winpty secures pipes with a
    DACL that prevents arbitrary users from connecting to its pipes. winpty now
    passes PIPE_REJECT_REMOTE_CLIENTS on Vista and up, and it verifies that
    the pipe client PID is correct, again on Vista and up. When connecting to a
    named pipe, winpty uses the SECURITY_IDENTIFICATION flag to restrict
    impersonation. Previous versions should still be secure.
  • winpty-debugserver.exe now has an --everyone flag that allows capturing
    debug output from other users.
  • The code now compiles cleanly with MSVC's "Security Development Lifecycle"
    (/SDL) checks enabled.