浏览代码

nil ptr check for endpointsettings when used with older clients

Signed-off-by: Madhu Venugopal <madhu@docker.com>
Madhu Venugopal 9 年之前
父节点
当前提交
35dbce109b
共有 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
 	}