]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds/Server.cc: fix possible NULL pointer dereference 309/head
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Fri, 17 May 2013 12:38:24 +0000 (14:38 +0200)
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Wed, 22 May 2013 13:45:22 +0000 (15:45 +0200)
Add asserts to solve these CID issues:

CID 717002 (#1 of 2): Dereference null return value (NULL_RETURNS)
  dereference: Dereferencing a pointer that might be null "dir"
  when calling "CDir::lookup(std::string const &, snapid_t)".
CID 717002 (#2 of 2): Dereference null return value (NULL_RETURNS)
  dereference: Dereferencing a pointer that might be null "dir"
  when calling "CDir::lookup(std::string const &, snapid_t)".

CID 717003 (#1 of 2): Dereference null return value (NULL_RETURNS)
  dereference: Dereferencing a pointer that might be null "dn" when
  calling "operator <<(std::ostream &, CDentry &)"
CID 717003 (#2 of 2): Dereference null return value (NULL_RETURNS)
  dereference: Dereferencing a pointer that might be null "straydn"
  when calling "CDentry::push_projected_linkage()".

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
src/mds/Server.cc

index b526b5e036ae8cd4de8e46db51bf49b5a4278011..7889a2cb73cd831ea371cd4061a806f7707e69ea 100644 (file)
@@ -5343,10 +5343,14 @@ void Server::do_rmdir_rollback(bufferlist &rbl, int master, MDRequest *mdr)
   assert(mdr || mds->is_resolve());
 
   CDir *dir = mds->mdcache->get_dirfrag(rollback.src_dir);
+  assert(dir);
   CDentry *dn = dir->lookup(rollback.src_dname);
+  assert(dn);
   dout(10) << " dn " << *dn << dendl;
   dir = mds->mdcache->get_dirfrag(rollback.dest_dir);
+  assert(dir);
   CDentry *straydn = dir->lookup(rollback.dest_dname);
+  assert(straydn);
   dout(10) << " straydn " << *dn << dendl;
   CInode *in = straydn->get_linkage()->get_inode();