summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>2013-05-31 18:39:43 +0200
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>2013-05-31 19:15:22 +0200
commitbb8798e320dc892a8bedf9d9c58393fe13c21ad2 (patch)
tree38d05a6c35711db04131886388612c04f0a993e0
parentdb2fbb1d61299a9de2e2c9df5d6a3f5727172009 (diff)
downloadceph-bb8798e320dc892a8bedf9d9c58393fe13c21ad2.tar.gz
mds/Locker.cc: fix dereference after null check
CID 716917 (#1 of 1): Dereference after null check (FORWARD_NULL) var_deref_model: Passing null pointer "in" to function "MDSCacheObject::state_test(unsigned int) const", which dereferences it. Add assert for in == NULL before using it. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-rw-r--r--src/mds/Locker.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc
index 127db262b46..5cf8ac8ad3d 100644
--- a/src/mds/Locker.cc
+++ b/src/mds/Locker.cc
@@ -3602,11 +3602,13 @@ void Locker::simple_lock(SimpleLock *lock, bool *need_issue)
}
}
- if (lock->get_type() == CEPH_LOCK_IFILE &&
- in->state_test(CInode::STATE_NEEDSRECOVER)) {
- mds->mdcache->queue_file_recover(in);
- mds->mdcache->do_file_recover();
- gather++;
+ if (lock->get_type() == CEPH_LOCK_IFILE) {
+ assert(in);
+ if(in->state_test(CInode::STATE_NEEDSRECOVER)) {
+ mds->mdcache->queue_file_recover(in);
+ mds->mdcache->do_file_recover();
+ gather++;
+ }
}
if (lock->get_parent()->is_replicated() &&