From: Xiao Guodong Date: Thu, 25 Jul 2019 08:36:05 +0000 (+0800) Subject: cephfs: avoid map been inserted by mistake X-Git-Tag: v15.1.0~2034^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F29304%2Fhead;p=ceph.git cephfs: avoid map been inserted by mistake if map client_caps has not key client, client_caps[client] will insert key client with null value into the map. Fixes: https://tracker.ceph.com/issues/40939 Signed-off-by: XiaoGuoDong2019 --- diff --git a/src/mds/SnapRealm.h b/src/mds/SnapRealm.h index 62d6cba952a4..17849e4f926f 100644 --- a/src/mds/SnapRealm.h +++ b/src/mds/SnapRealm.h @@ -147,9 +147,10 @@ public: } void remove_cap(client_t client, Capability *cap) { cap->item_snaprealm_caps.remove_myself(); - if (client_caps[client]->empty()) { - delete client_caps[client]; - client_caps.erase(client); + auto found = client_caps.find(client); + if (found != client_caps.end() && found->second->empty()) { + delete found->second; + client_caps.erase(found); } } };