소스 검색

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

Anthony Romano 10 년 전
부모
커밋
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}
 	cfg := &e.cfg
 	defer func() {
-		if err != nil {
+		if e != nil && err != nil {
 			e.Close()
 			e = nil
 		}
@@ -90,7 +90,7 @@ func StartEtcd(inCfg *Config) (e *Etcd, err error) {
 	if !isMemberInitialized(cfg) {
 		urlsmap, token, err = cfg.PeerURLsMapAndToken("etcd")
 		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)
 		}
 	}