]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds/Locker.cc: fix dereference after null check
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Fri, 31 May 2013 16:39:43 +0000 (18:39 +0200)
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Fri, 31 May 2013 17:15:22 +0000 (19:15 +0200)
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>
src/mds/Locker.cc

index 127db262b4624a4163149cc018600c217bff488e..5cf8ac8ad3dd3ff20a641c5c39ef76fddfc1089a 100644 (file)
@@ -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() &&