浏览代码

embed: fix nil dereference on error to set up initial cluster

Anthony Romano 9 年之前
父节点
当前提交
34602b87ec
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      embed/etcd.go

+ 2 - 2
embed/etcd.go

@@ -66,7 +66,7 @@ func StartEtcd(inCfg *Config) (e *Etcd, err error) {
 	e = &Etcd{cfg: *inCfg}
 	e = &Etcd{cfg: *inCfg}
 	cfg := &e.cfg
 	cfg := &e.cfg
 	defer func() {
 	defer func() {
-		if err != nil {
+		if e != nil && err != nil {
 			e.Close()
 			e.Close()
 			e = nil
 			e = nil
 		}
 		}
@@ -90,7 +90,7 @@ func StartEtcd(inCfg *Config) (e *Etcd, err error) {
 	if !isMemberInitialized(cfg) {
 	if !isMemberInitialized(cfg) {
 		urlsmap, token, err = cfg.PeerURLsMapAndToken("etcd")
 		urlsmap, token, err = cfg.PeerURLsMapAndToken("etcd")
 		if err != nil {
 		if err != nil {
-			return nil, fmt.Errorf("error setting up initial cluster: %v", err)
+			return e, fmt.Errorf("error setting up initial cluster: %v", err)
 		}
 		}
 	}
 	}