Prechádzať zdrojové kódy

judge manager if locked before parsing key

Signed-off-by: allencloud <allen.sun@daocloud.io>
(cherry picked from commit 89100c162b23791b4a64d142a11014257bf61fd0)
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
allencloud 8 rokov pred
rodič
commit
2ecc8cd4bd
1 zmenil súbory, kde vykonal 5 pridanie a 5 odobranie
  1. 5 5
      daemon/cluster/cluster.go

+ 5 - 5
daemon/cluster/cluster.go

@@ -595,6 +595,11 @@ func (c *Cluster) UnlockSwarm(req types.UnlockRequest) error {
 			return err
 		}
 	}
+
+	if c.node != nil || c.locked != true {
+		c.RUnlock()
+		return errors.New("swarm is not locked")
+	}
 	c.RUnlock()
 
 	key, err := encryption.ParseHumanReadableKey(req.UnlockKey)
@@ -603,11 +608,6 @@ func (c *Cluster) UnlockSwarm(req types.UnlockRequest) error {
 	}
 
 	c.Lock()
-	if c.node != nil || c.locked != true {
-		c.Unlock()
-		return errors.New("swarm is not locked")
-	}
-
 	config := *c.lastNodeConfig
 	config.lockKey = key
 	n, err := c.startNewNode(config)