summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>2013-05-14 19:02:20 +0200
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>2013-05-14 19:02:20 +0200
commitc87788b69b82abaa9202e624d255033a0c5766b4 (patch)
tree80e5fc677018b39c1df78311c25f2d992e4ca581
parent088455f85e4a684d270b82c4b2b26edab3e1ad99 (diff)
downloadceph-c87788b69b82abaa9202e624d255033a0c5766b4.tar.gz
mds/Server.cc: fix possible NULL pointer dereference
Assert if destdn == NULL. CID 1019557 (#1 of 1): Dereference after null check (FORWARD_NULL) var_deref_model: Passing null pointer "destdn" to function "CDentry::get_dir() const", which dereferences it. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-rw-r--r--src/mds/Server.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mds/Server.cc b/src/mds/Server.cc
index c9fac424f6f..3e89156cd93 100644
--- a/src/mds/Server.cc
+++ b/src/mds/Server.cc
@@ -7091,8 +7091,10 @@ void Server::_rename_rollback_finish(Mutation *mut, MDRequest *mdr, CDentry *src
if (srcdn) {
CInode *in = srcdn->get_linkage()->get_inode();
// update subtree map?
- if (in && in->is_dir())
+ if (in && in->is_dir()) {
+ assert(destdn);
mdcache->adjust_subtree_after_rename(in, destdn->get_dir(), true);
+ }
}
if (destdn) {