From 22e0d6cf85d50a60070f36d72269cd0e1e78e4ee Mon Sep 17 00:00:00 2001 From: Haomai Wang Date: Sat, 24 Dec 2016 11:33:34 +0800 Subject: [PATCH] messages/MOSDSubOp: Make encode_payload can be reentrant Otherwise, AsyncConnection will use uninitialized feature to encode message. The caller side will set a old version header but encode with newest feature since passing feature is ok. It will let receiver side got a old header version but newest payload decode result. Signed-off-by: Haomai Wang --- src/messages/MOSDSubOp.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/messages/MOSDSubOp.h b/src/messages/MOSDSubOp.h index 82b866dc803..615e8a5c8b8 100644 --- a/src/messages/MOSDSubOp.h +++ b/src/messages/MOSDSubOp.h @@ -181,6 +181,7 @@ public: void finish_decode() { } virtual void encode_payload(uint64_t features) { + header.version = HEAD_VERSION; ::encode(map_epoch, payload); ::encode(reqid, payload); ::encode(pgid.pgid, payload); -- 2.39.5