`ConnectToNetwork` is modfying the container but is not locking the
object.
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
| ... | ... |
@@ -980,6 +980,9 @@ func (daemon *Daemon) ConnectToNetwork(container *container.Container, idOrName |
| 980 | 980 |
if endpointConfig == nil {
|
| 981 | 981 |
endpointConfig = &networktypes.EndpointSettings{}
|
| 982 | 982 |
} |
| 983 |
+ container.Lock() |
|
| 984 |
+ defer container.Unlock() |
|
| 985 |
+ |
|
| 983 | 986 |
if !container.Running {
|
| 984 | 987 |
if container.RemovalInProgress || container.Dead {
|
| 985 | 988 |
return errRemovalContainer(container.ID) |
| ... | ... |
@@ -1002,7 +1005,7 @@ func (daemon *Daemon) ConnectToNetwork(container *container.Container, idOrName |
| 1002 | 1002 |
return err |
| 1003 | 1003 |
} |
| 1004 | 1004 |
} |
| 1005 |
- if err := container.ToDiskLocking(); err != nil {
|
|
| 1005 |
+ if err := container.ToDisk(); err != nil {
|
|
| 1006 | 1006 |
return fmt.Errorf("Error saving container to disk: %v", err)
|
| 1007 | 1007 |
} |
| 1008 | 1008 |
return nil |
| ... | ... |
@@ -1011,6 +1014,9 @@ func (daemon *Daemon) ConnectToNetwork(container *container.Container, idOrName |
| 1011 | 1011 |
// DisconnectFromNetwork disconnects container from network n. |
| 1012 | 1012 |
func (daemon *Daemon) DisconnectFromNetwork(container *container.Container, networkName string, force bool) error {
|
| 1013 | 1013 |
n, err := daemon.FindNetwork(networkName) |
| 1014 |
+ container.Lock() |
|
| 1015 |
+ defer container.Unlock() |
|
| 1016 |
+ |
|
| 1014 | 1017 |
if !container.Running || (err != nil && force) {
|
| 1015 | 1018 |
if container.RemovalInProgress || container.Dead {
|
| 1016 | 1019 |
return errRemovalContainer(container.ID) |
| ... | ... |
@@ -1038,7 +1044,7 @@ func (daemon *Daemon) DisconnectFromNetwork(container *container.Container, netw |
| 1038 | 1038 |
return err |
| 1039 | 1039 |
} |
| 1040 | 1040 |
|
| 1041 |
- if err := container.ToDiskLocking(); err != nil {
|
|
| 1041 |
+ if err := container.ToDisk(); err != nil {
|
|
| 1042 | 1042 |
return fmt.Errorf("Error saving container to disk: %v", err)
|
| 1043 | 1043 |
} |
| 1044 | 1044 |
|