summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>2013-05-29 15:51:48 +0200
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>2013-05-31 19:15:23 +0200
commitd9b00c435911a969636933f8bd4f96dde7c19275 (patch)
tree3c221cbd4c87fb5dbaa7273749fc09cb81c47767
parent0b78e2bcff368f5503aa9cd3662c1517655dea37 (diff)
downloadceph-d9b00c435911a969636933f8bd4f96dde7c19275.tar.gz
mds/Server.cc: fix dereference after null check
Add assert to fix: CID 716925 (#1 of 1): Dereference after null check (FORWARD_NULL) var_deref_model: Passing null pointer "straydn" 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 644b3ade005..619f6d9a3ec 100644
--- a/src/mds/Server.cc
+++ b/src/mds/Server.cc
@@ -5089,8 +5089,10 @@ void Server::_unlink_local(MDRequest *mdr, CDentry *dn, CDentry *straydn)
dn->push_projected_linkage();
- if (in->is_dir())
+ if (in->is_dir()) {
+ assert(straydn);
mds->mdcache->project_subtree_rename(in, dn->get_dir(), straydn->get_dir());
+ }
journal_and_reply(mdr, 0, dn, le, new C_MDS_unlink_local_finish(mds, mdr, dn, straydn));
}