]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
add symlink check_access
authorJashan Kamboj <jashank42@gmail.com>
Tue, 14 Jul 2015 21:30:38 +0000 (03:00 +0530)
committerSage Weil <sage@redhat.com>
Thu, 1 Oct 2015 13:39:31 +0000 (09:39 -0400)
Signed-off-by: Jashan Kamboj <jashank42@gmail.com>
src/mds/Server.cc

index 9bbf5a4a4910e568dd5b47aaf302421551fc573a..6d7f242648a2a772c826eabf7e9a1c8b73cef82b 100644 (file)
@@ -4609,6 +4609,9 @@ void Server::handle_client_symlink(MDRequestRef& mdr)
   if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks))
     return;
 
+  if (!check_access(mdr, diri, MAY_WRITE))
+   return;
+
   unsigned mode = S_IFLNK | 0777;
   CInode *newi = prepare_new_inode(mdr, dn->get_dir(), inodeno_t(req->head.ino), mode);
   assert(newi);