From 9f123c4f2fa5d06500b39a5f8b0c38a39a6a5688 Mon Sep 17 00:00:00 2001 From: simon Date: Wed, 18 Apr 2012 06:36:46 +0000 Subject: [PATCH] Conditionalise the calls to premsg and postmsg in uxcons.c's logevent(), which temporarily turn off the raw mode we've put stderr into, so that they don't get called if the log_eventlog() call between them is not _actually_ going to write to stderr. Fixes a bug in which, if you define a Unix PuTTY saved session which uses 'plink -nc' as a local proxy command and then run PuTTY backgrounded from the shell with that session loaded, the subprocess Plink would get SIGTTOU when it tried to muck about with stderr and the whole thing would grind to a halt. I'm prepared to consider that acceptable if Plink _really_ wants to write on standard error, but if it doesn't, it should just carry on working in the background! git-svn-id: svn://svn.tartarus.org/sgt/putty@9462 cda61777-01e9-0310-a592-d414129be87e --- unix/uxcons.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/unix/uxcons.c b/unix/uxcons.c index ce1a4923..73126c02 100644 --- a/unix/uxcons.c +++ b/unix/uxcons.c @@ -321,10 +321,12 @@ void console_provide_logctx(void *logctx) void logevent(void *frontend, const char *string) { struct termios cf; - premsg(&cf); + if ((flags & FLAG_STDERR) && (flags & FLAG_VERBOSE)) + premsg(&cf); if (console_logctx) log_eventlog(console_logctx, string); - postmsg(&cf); + if ((flags & FLAG_STDERR) && (flags & FLAG_VERBOSE)) + postmsg(&cf); } /* -- 2.11.0