소스 검색

nil ptr check for endpointsettings when used with older clients

Signed-off-by: Madhu Venugopal <madhu@docker.com>
Madhu Venugopal 9 년 전
부모
커밋
f175dc5fb4
1개의 변경된 파일11개의 추가작업 그리고 12개의 파일을 삭제
  1. 11 12
      daemon/container_operations_unix.go

+ 11 - 12
daemon/container_operations_unix.go

@@ -757,21 +757,20 @@ func (daemon *Daemon) connectToNetwork(container *container.Container, idOrName
 		return nil
 	}
 
-	if !containertypes.NetworkMode(idOrName).IsUserDefined() && hasUserDefinedIPAddress(endpointConfig) {
-		return runconfig.ErrUnsupportedNetworkAndIP
-	}
-
-	if !containertypes.NetworkMode(idOrName).IsUserDefined() && len(endpointConfig.Aliases) > 0 {
-		return runconfig.ErrUnsupportedNetworkAndAlias
-	}
-
 	controller := daemon.netController
 
-	if err := validateNetworkingConfig(n, endpointConfig); err != nil {
-		return err
-	}
-
 	if endpointConfig != nil {
+		if !containertypes.NetworkMode(idOrName).IsUserDefined() && hasUserDefinedIPAddress(endpointConfig) {
+			return runconfig.ErrUnsupportedNetworkAndIP
+		}
+
+		if err := validateNetworkingConfig(n, endpointConfig); err != nil {
+			return err
+		}
+
+		if !containertypes.NetworkMode(idOrName).IsUserDefined() && len(endpointConfig.Aliases) > 0 {
+			return runconfig.ErrUnsupportedNetworkAndAlias
+		}
 		container.NetworkSettings.Networks[n.Name()] = endpointConfig
 	}