]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
client: fix null pointer dereference in Client::unlink
authorYan, Zheng <zheng.z.yan@intel.com>
Fri, 4 Apr 2014 12:50:41 +0000 (20:50 +0800)
committerYan, Zheng <zheng.z.yan@intel.com>
Fri, 4 Apr 2014 16:49:37 +0000 (00:49 +0800)
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
src/client/Client.cc

index 7623e173ccec40356fea47c0af5f691666e14b71..51e9cd0cadfb1772a0dc9493dd8e3bd300698a05 100644 (file)
@@ -758,7 +758,7 @@ Dentry *Client::insert_dentry_inode(Dir *dir, const string& dname, LeaseStat *dl
   
   if (!dn || dn->inode == 0) {
     in->get();
-    if (old_dentry)
+    if (old_dentry && old_dentry->dir)
       unlink(old_dentry, dir == old_dentry->dir);  // keep dir open if its the same dir
     dn = link(dir, dname, in, dn);
     put_inode(in);