From: Jashan Kamboj Date: Tue, 14 Jul 2015 21:30:38 +0000 (+0530) Subject: add symlink check_access X-Git-Tag: v10.0.0~123^2~76 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7f35ae4c915d2c43b7c24c1e6bb19c4e545e807a;p=ceph.git add symlink check_access Signed-off-by: Jashan Kamboj --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 9bbf5a4a4910..6d7f242648a2 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -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);