From e994a4df0163b2c1c1a2cb5a424412b9e4eba47b Mon Sep 17 00:00:00 2001 From: Jingyi Hu Date: Tue, 7 May 2019 15:49:02 -0700 Subject: [PATCH] etcdserver: check http StatusCode before unmarshal Check http StatusCode. Only Unmarshal body if StatusCode is statusOK. --- etcdserver/cluster_util.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etcdserver/cluster_util.go b/etcdserver/cluster_util.go index 85bf8722c..f92706cb7 100644 --- a/etcdserver/cluster_util.go +++ b/etcdserver/cluster_util.go @@ -395,6 +395,10 @@ func promoteMemberHTTP(ctx context.Context, url string, id uint64, peerRt http.R return nil, membership.ErrIDNotFound } + if resp.StatusCode != http.StatusOK { // all other types of errors + return nil, fmt.Errorf("member promote: unknown error(%s)", string(b)) + } + var membs []*membership.Member if err := json.Unmarshal(b, &membs); err != nil { return nil, err