]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Server: add create access check for mknod and symlink
authorNishtha Rai <nishtha3rai@gmail.com>
Tue, 28 Jul 2015 17:08:15 +0000 (22:38 +0530)
committerSage Weil <sage@redhat.com>
Thu, 1 Oct 2015 13:39:33 +0000 (09:39 -0400)
src/mds/Server.cc

index 3ac09731c1447d96c02affbaab57c9a9c4343415..8bff70004aa0c67ee84e0b265ed7b366d8ea6cf6 100644 (file)
@@ -4452,7 +4452,7 @@ void Server::handle_client_mknod(MDRequestRef& mdr)
   if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks))
     return;
 
-  if (!check_access(mdr, diri, MAY_WRITE))
+  if (!check_access(mdr, diri, MAY_WRITE|MAY_CREATE))
     return;
 
   unsigned mode = req->head.args.mknod.mode;
@@ -4623,7 +4623,7 @@ void Server::handle_client_symlink(MDRequestRef& mdr)
   if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks))
     return;
 
-  if (!check_access(mdr, diri, MAY_WRITE))
+  if (!check_access(mdr, diri, MAY_WRITE|MAY_CREATE))
    return;
 
   unsigned mode = S_IFLNK | 0777;