From: Danny Al-Gaaf Date: Tue, 14 May 2013 17:15:23 +0000 (+0200) Subject: mds/Server.cc: fix possible NULL pointer dereference X-Git-Tag: v0.63~29^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d69290219d008ece749e8c43d9a358dc4304c417;p=ceph.git mds/Server.cc: fix possible NULL pointer dereference Assert if straydn is NULL. CID 1019554 (#2 of 2): Dereference after null check (FORWARD_NULL) var_deref_model: Passing null pointer "straydn" to function "MDSCacheObject::is_auth() const", which dereferences it. Signed-off-by: Danny Al-Gaaf --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 46adf2200213..4afe10d693fd 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -6210,9 +6210,12 @@ void Server::_rename_prepare(MDRequest *mdr, // guarantee stray dir is processed first during journal replay. unlink the old inode, // then link the source inode to destdn - if (destdnl->is_primary() && straydn->is_auth()) { - metablob->add_dir_context(straydn->get_dir()); - metablob->add_dir(straydn->get_dir(), true); + if (destdnl->is_primary()) { + assert(straydn); + if (straydn->is_auth()) { + metablob->add_dir_context(straydn->get_dir()); + metablob->add_dir(straydn->get_dir(), true); + } } // sub off target