From: Xiubo Li Date: Fri, 26 Mar 2021 07:57:47 +0000 (+0800) Subject: mds: skip the buffer in UnknownPayload::decode() X-Git-Tag: v16.2.2~24^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1983799b4c1171f3623b42db8a4d5a650949a94a;p=ceph.git mds: skip the buffer in UnknownPayload::decode() If it receiving an unknown type of metric, it should skip the buffer when dropping it. Or it will cause corruption. Fixes: https://tracker.ceph.com/issues/49972 Signed-off-by: Xiubo Li (cherry picked from commit fb782d4512be1ea130a5953f6067901a939e467d) --- diff --git a/src/include/cephfs/metrics/Types.h b/src/include/cephfs/metrics/Types.h index 3f2b642fdb3..5843a1ed0fb 100644 --- a/src/include/cephfs/metrics/Types.h +++ b/src/include/cephfs/metrics/Types.h @@ -367,6 +367,10 @@ struct UnknownPayload { } void decode(bufferlist::const_iterator &iter) { + using ceph::decode; + DECODE_START(254, iter); + iter.seek(struct_len); + DECODE_FINISH(iter); } void dump(Formatter *f) const {