Cygwin: pty: Prevent potential errno overwriting.
- In push_to_pcon_screenbuffer(), open() and ioctl() are called. Since push_to_pcon_screenbuffer() is called in read() and write(), errno which is set in read() and write() code may be overwritten in open() or ioctl() call. This patch prevent this situation.
This commit is contained in:
parent
2de74af22b
commit
2379142bc5
@ -1412,10 +1412,13 @@ fhandler_pty_slave::push_to_pcon_screenbuffer (const char *ptr, size_t len,
|
||||
while (!GetConsoleMode (get_output_handle (), &dwMode))
|
||||
{
|
||||
termios_printf ("GetConsoleMode failed, %E");
|
||||
int errno_save = errno;
|
||||
/* Re-open handles */
|
||||
this->open (0, 0);
|
||||
/* Fix pseudo console window size */
|
||||
this->ioctl (TIOCSWINSZ, &get_ttyp ()->winsize);
|
||||
if (errno != errno_save)
|
||||
set_errno (errno_save);
|
||||
if (++retry_count > 3)
|
||||
goto cleanup;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user