From 89100c162b23791b4a64d142a11014257bf61fd0 Mon Sep 17 00:00:00 2001 From: allencloud Date: Mon, 21 Nov 2016 16:33:46 +0800 Subject: [PATCH] judge manager if locked before parsing key Signed-off-by: allencloud --- daemon/cluster/cluster.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/daemon/cluster/cluster.go b/daemon/cluster/cluster.go index 55a74d8cb1..6b8b9c3697 100644 --- a/daemon/cluster/cluster.go +++ b/daemon/cluster/cluster.go @@ -592,6 +592,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) @@ -600,11 +605,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)