From: Danny Al-Gaaf Date: Thu, 13 Mar 2014 16:59:41 +0000 (+0100) Subject: CInode::encode_cap_message: add assert for cap X-Git-Tag: v0.79~149^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b10692fb3ae6893e6cd9f75f38efa66baa98965c;p=ceph.git CInode::encode_cap_message: add assert for cap CID 716913 (#1 of 1): Dereference after null check (FORWARD_NULL) 5. var_deref_op: Dereferencing null pointer "cap". Signed-off-by: Danny Al-Gaaf --- diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index 1ce2ee80b7c..0704baa2513 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -3031,10 +3031,11 @@ int CInode::encode_inodestat(bufferlist& bl, Session *session, void CInode::encode_cap_message(MClientCaps *m, Capability *cap) { + assert(cap); + client_t client = cap->get_client(); - bool pfile = filelock.is_xlocked_by_client(client) || - (cap && (cap->issued() & CEPH_CAP_FILE_EXCL)); + bool pfile = filelock.is_xlocked_by_client(client) || (cap->issued() & CEPH_CAP_FILE_EXCL); bool pauth = authlock.is_xlocked_by_client(client); bool plink = linklock.is_xlocked_by_client(client); bool pxattr = xattrlock.is_xlocked_by_client(client);