Gavin Camp created SSHD-828:
-------------------------------
Summary: Race condition when using SOCKS connections
Key: SSHD-828
URL: https://issues.apache.org/jira/browse/SSHD-828
Project: MINA SSHD
Issue Type: Bug
Affects Versions: 1.7.0
Reporter: Gavin Camp
Attachments: patch.diff
There is a race condition when using SOCKS proxies with the SSHD server. After
the initial SOCKS negotiation the SOCKS proxy creates a channel. When notified
that the SOCKS channel is open the SOCKS proxy then sends the final accept SOCK
packet. However there is a timing issue where very fast hosts could have
already sent a packet over the now open channel - which will arrive at the
client before the final SOCKS proxy packet. This confuses the SOCKS client
connected to the server as its expected a SOCKS packet and instead gets a
packet from the underlying stream.
While this isn't a huge issue for us, given that we have the patch, this could
render the SOCKS implementation useless for some users.
Attached is a rough patch the corrects the issue.
Note: as we are just using SSHD for testing I wasn't overly concerned with
error checking or avoiding synchronization - I'm just providing it to help
illustrate the issue. Also you can ignore the pom and check-style changes I
just disabled them for an easier life.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)