[Bug 1590] ^C is not supported in sftp

bugzilla-daemon at bugzilla.mindrot.org bugzilla-daemon at bugzilla.mindrot.org
Wed Jan 13 21:37:45 EST 2010


https://bugzilla.mindrot.org/show_bug.cgi?id=1590

Darren Tucker <dtucker at zip.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #2 from Darren Tucker <dtucker at zip.com.au> 2010-01-13 21:37:44 EST ---
Actually, that's not the reason.  The real reason is a bug in
readpassphrase, which is imported from OpenBSD.

getpassphrase saves the current signal handlers and sets up its own. 
(It does this so that it can, eg, restore the terminal modes if it's
interrupted while in raw mode).  In order to get the same behaviour
from the application that you would normally get from the signal,
readpassphrase stores the signal and when it restores the handlers, it
resends the signal to itself.

The catch is the storage is only a single variable, which means that
only the most recent signal is replayed.  When you observed the
problem, the most recent signal was the SIGINT which, as described
above, is dutifully ignored.  sftp also sends a SIGTERM to ssh, however
it was usually lost, and when that happened, ssh remained running while
sftp was waiting for it to shut down.

We've fixed OpenBSD and imported the fixes, so this should be fixed in
the next release (5.4p1).  Thanks for the report.

-- 
Configure bugmail: https://bugzilla.mindrot.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
You are watching someone on the CC list of the bug.


More information about the openssh-bugs mailing list