]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds/MDCache.cc: fix dereference NULL pointer
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Fri, 10 May 2013 13:28:32 +0000 (15:28 +0200)
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Fri, 10 May 2013 22:02:55 +0000 (00:02 +0200)
Fix possible NULL pointer dereference. Change return value of
CInode::get_dirfrag() to return NULL instead of 0 since it's a
pointer returned.

CID 716991 Dereference null return value (CWE-478)

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

index a3fe3cf628846c4dcdea4c9758d515dd7d0cc04c..7c63593c73cc6d79e69144933895d4edcfdebc21 100644 (file)
@@ -332,7 +332,7 @@ public:
       //assert(g_conf->debug_mds < 2 || dirfragtree.is_leaf(fg)); // performance hack FIXME
       return dirfrags[fg];
     } else
-      return 0;
+      return NULL;
   }
   bool get_dirfrags_under(frag_t fg, list<CDir*>& ls);
   CDir* get_approx_dirfrag(frag_t fg);
index 55ddf874776a4ce3d41a65d7ed2dd57edfb570a2..094aefdf5563067efe6cb633c2838cc3fcba6f60 100644 (file)
@@ -10082,7 +10082,8 @@ CDir *MDCache::force_dir_fragment(CInode *diri, frag_t fg)
       src.push_back(pdir);
       adjust_dir_fragments(diri, src, parent, split, result, waiters, true);
       dir = diri->get_dirfrag(fg);
-      dout(10) << "force_dir_fragment result " << *dir << dendl;
+      if (dir)
+        dout(10) << "force_dir_fragment result " << *dir << dendl;
       return dir;
     }
     if (parent == frag_t())