From: Nishtha Rai Date: Tue, 28 Jul 2015 17:08:15 +0000 (+0530) Subject: Server: add create access check for mknod and symlink X-Git-Tag: v10.0.0~123^2~51 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=62b95027a69b215665cba3b03666085f6803d53b;p=ceph.git Server: add create access check for mknod and symlink --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 3ac09731c144..8bff70004aa0 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -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;