diff options
| author | Raghavendra Bhat <raghavendra@redhat.com> | 2013-05-02 12:56:46 +0530 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2013-06-03 16:11:12 -0700 | 
| commit | 3f5e575a0744488b4a1719c3e61864c3abc9ac22 (patch) | |
| tree | e5bf124e6fe917feb7fca28e30007f74e003b4e3 /xlators/system/posix-acl/src/posix-acl.c | |
| parent | a3e593f9f17cb1e68db97bb5a0d8074793a33964 (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>
Diffstat (limited to 'xlators/system/posix-acl/src/posix-acl.c')
| -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 f6246d92c..3e2f7f212 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);  | 
