diff options
author | Raghavendra Bhat <raghavendra@redhat.com> | 2013-05-02 12:56:46 +0530 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2013-09-09 17:21:24 -0700 |
commit | 975d0c003ac77a28be2847fb96a8a86251ee08b2 (patch) | |
tree | 121029d06b775baaa3050475d455e47c8aefd733 /xlators/system/posix-acl | |
parent | eb62d02f349a793b7b7a08825888f88681acbe55 (diff) |
system/posix-acl: check for the sticky bit of the parent directory
* While creating links, check if there is sticky bit set for the parent
directory and whether the sticky bit permits the user to create the link.
Change-Id: Ic0d09d9ed579c4eb47462c71602a3a60cc7d3bc1
BUG: 958691
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Reviewed-on: http://review.gluster.org/4934
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/5813
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Diffstat (limited to 'xlators/system/posix-acl')
-rw-r--r-- | xlators/system/posix-acl/src/posix-acl.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/xlators/system/posix-acl/src/posix-acl.c b/xlators/system/posix-acl/src/posix-acl.c index f6246d92c8a..3e2f7f21260 100644 --- a/xlators/system/posix-acl/src/posix-acl.c +++ b/xlators/system/posix-acl/src/posix-acl.c @@ -1394,6 +1394,11 @@ posix_acl_link (call_frame_t *frame, xlator_t *this, loc_t *old, loc_t *new, dic goto red; } + if (!sticky_permits (frame, new->parent, new->inode)) { + op_errno = EACCES; + goto red; + } + STACK_WIND (frame, posix_acl_link_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->link, old, new, xdata); |