Ver código fonte

fix panic with unix socket

Victor Vieux 12 anos atrás
pai
commit
9d3ec7b39f
1 arquivos alterados com 8 adições e 2 exclusões
  1. 8 2
      commands.go

+ 8 - 2
commands.go

@@ -1474,8 +1474,14 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.Rea
 		if in != nil {
 			io.Copy(rwc, in)
 		}
-		if err := rwc.(*net.TCPConn).CloseWrite(); err != nil {
-			utils.Debugf("Couldn't send EOF: %s\n", err)
+		if tcpc, ok := rwc.(*net.TCPConn); ok {
+			if err := tcpc.CloseWrite(); err != nil {
+				utils.Debugf("Couldn't send EOF: %s\n", err)
+			}
+		} else if unixc, ok := rwc.(*net.UnixConn); ok {
+			if err := unixc.CloseWrite(); err != nil {
+				utils.Debugf("Couldn't send EOF: %s\n", err)
+			}
 		}
 		// Discard errors due to pipe interruption
 		return nil