diff --git a/src/croc/croc.go b/src/croc/croc.go index 478c9b6..3d47ab1 100644 --- a/src/croc/croc.go +++ b/src/croc/croc.go @@ -800,6 +800,9 @@ func (c *Client) processMessageFileInfo(m message.Message) (done bool, err error Type: "error", Message: "refusing files", }) + if err != nil { + return false, err + } return true, fmt.Errorf("refused files") } } else { @@ -893,6 +896,9 @@ func (c *Client) processMessageSalt(m message.Message) (done bool, err error) { Type: "salt", Bytes: m.Bytes, }) + if err != nil { + return true, err + } } log.Debugf("session key is verified, generating encryption with salt: %x", m.Bytes) key, err := c.Pake.SessionKey() @@ -994,7 +1000,6 @@ func (c *Client) processMessage(payload []byte) (done bool, err error) { Message: "refusing files", }) done = true - err = fmt.Errorf("refused files") return } } diff --git a/src/tcp/tcp.go b/src/tcp/tcp.go index 39664be..5fabf62 100644 --- a/src/tcp/tcp.go +++ b/src/tcp/tcp.go @@ -170,6 +170,9 @@ func (s *server) clientCommunication(port string, c *comm.Comm) (room string, er return } err = c.Send(B.Bytes()) + if err != nil { + return + } Abytes, err = c.Receive() if err != nil { return @@ -186,6 +189,9 @@ func (s *server) clientCommunication(port string, c *comm.Comm) (room string, er // receive salt salt, err := c.Receive() + if err != nil { + return + } strongKeyForEncryption, _, err := crypt.New(strongKey, salt) if err != nil { return @@ -446,6 +452,9 @@ func ConnectToTCPServer(address, password, room string, timelimit ...time.Durati log.Debugf("strong key: %x", strongKey) strongKeyForEncryption, salt, err := crypt.New(strongKey, nil) + if err != nil { + return + } // send salt err = c.Send(salt) if err != nil {