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 <xiaogd@inspur.com>
(cherry picked from commit
1959fee90a3f4eb351b2975a56b386a0a516239d)
}
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);
}
}
};