diff options
author | Danny Al-Gaaf <danny.al-gaaf@bisect.de> | 2013-05-31 18:39:43 +0200 |
---|---|---|
committer | Danny Al-Gaaf <danny.al-gaaf@bisect.de> | 2013-05-31 19:15:22 +0200 |
commit | bb8798e320dc892a8bedf9d9c58393fe13c21ad2 (patch) | |
tree | 38d05a6c35711db04131886388612c04f0a993e0 | |
parent | db2fbb1d61299a9de2e2c9df5d6a3f5727172009 (diff) | |
download | ceph-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.cc | 12 |
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() && |