[snowflake/master] Restore check for nil writePipe in WebRTCPeer.Close.

commit 72cfb96edeb7c9a3c93d38539bc31a51e30dbe8d Author: David Fifield <david@bamsoftware.com> Date: Tue Apr 28 11:33:09 2020 -0600 Restore check for nil writePipe in WebRTCPeer.Close. I removed this check in 047d3214bfb46de07e5d9f223e4fb1ba24584c8a because NewWebRTCPeer always initializes writePipe, and it is never reset to nil. However tests used &WebRTCPeer{} which bypasses NewWebRTCPeer and leaves writePipe set to nil. https://bugs.torproject.org/34049#comment:3 https://bugs.torproject.org/34050 --- client/lib/webrtc.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/client/lib/webrtc.go b/client/lib/webrtc.go index edc8ab4..23cb3e1 100644 --- a/client/lib/webrtc.go +++ b/client/lib/webrtc.go @@ -236,7 +236,9 @@ func exchangeSDP(broker *BrokerChannel, offer *webrtc.SessionDescription) *webrt // Close all channels and transports func (c *WebRTCPeer) cleanup() { // Close this side of the SOCKS pipe. - c.writePipe.Close() + if c.writePipe != nil { // c.writePipe can be nil in tests. + c.writePipe.Close() + } if nil != c.transport { log.Printf("WebRTC: closing DataChannel") c.transport.Close()
participants (1)
-
dcf@torproject.org