[Bugs] [Bug 1241104] New: Handle negative fcntl flock->l_len values

bugzilla at redhat.com bugzilla at redhat.com
Wed Jul 8 12:51:37 UTC 2015


            Bug ID: 1241104
           Summary: Handle negative fcntl flock->l_len values
           Product: GlusterFS
           Version: mainline
         Component: locks
          Severity: urgent
          Assignee: bugs at gluster.org
          Reporter: skoduri at redhat.com
                CC: bugs at gluster.org, gluster-bugs at redhat.com

Description of problem:

As per 'man 3 fcntl', 
       If  l_len  is positive, the area affected shall start at l_start and end
at l_start+l_len−1.  If l_len is negative, the area affected shall start at
l_start+l_len and end at l_start−1.  Locks may start and extend beyond the
current end  of a file, but shall not extend before the beginning of the file.
A lock shall be set to extend to the largest possible value of the file offset
for that file by setting l_len to 0. If such a lock also has l_start set to 0

But in the current lock handling,

pl_lk (call_frame_t *frame, xlator_t *this,
       fd_t *fd, int32_t cmd, struct gf_flock *flock, dict_t *xdata)

        if ((flock->l_start < 0) || (flock->l_len < 0)) {
                op_ret = -1;
                op_errno = EINVAL;
                goto unwind;

We invariably return error if l_len is found to be negative. It needs to be

You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.

More information about the Bugs mailing list