From bf28d6574f18c31fa98bb65e15e91e8f2c9870fd Mon Sep 17 00:00:00 2001 From: Dan Ballard Date: Mon, 4 Feb 2019 14:12:16 -0800 Subject: [PATCH] prevent sigfault when tor is closed --- connectivity/torProvider.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/connectivity/torProvider.go b/connectivity/torProvider.go index b3c072f..85e26c8 100644 --- a/connectivity/torProvider.go +++ b/connectivity/torProvider.go @@ -100,6 +100,10 @@ func (tp *torProvider) Listen(identity PrivateKey, port int) (ListenService, err var onion = "" var privkey ed25519.PrivateKey + if tp.t == nil { + return nil, errors.New("Tor Provider closed") + } + switch pk := identity.(type) { case ed25519.PrivateKey: privkey = pk @@ -147,6 +151,7 @@ func (tp *torProvider) Listen(identity PrivateKey, port int) (ListenService, err func (tp *torProvider) Open(hostname string) (net.Conn, string, error) { tp.lock.Lock() defer tp.lock.Unlock() + if tp.t == nil { return nil, hostname, errors.New("Tor is offline") } @@ -180,6 +185,7 @@ func (tp *torProvider) Close() { tp.breakChan <- true if tp.t != nil { tp.t.Close() + tp.t = nil } }