From b495328a30f0b4ca75335fef11d418dff383ec30 Mon Sep 17 00:00:00 2001 From: Felipe Magno de Almeida Date: Mon, 14 Dec 2020 11:48:29 -0300 Subject: [PATCH] evil: Fix fcntl for F_SETLK and F_SETLKW wrong length calculation Summary: If length and start are both 0, size is wrongfully negative. Besides, using length as a delimitator in a range means that [0, length) is a half-closed interval, so we don't need to subtract by 1. Reviewers: vtorri, woohyun, lucas, jptiz Reviewed By: vtorri, lucas Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D12208 --- src/lib/evil/evil_fcntl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evil/evil_fcntl.c b/src/lib/evil/evil_fcntl.c index 14d10b111c..6c556a6cd7 100644 --- a/src/lib/evil/evil_fcntl.c +++ b/src/lib/evil/evil_fcntl.c @@ -114,7 +114,7 @@ fcntl(int fd, int cmd, ...) if (length != -1L) res = 0; } - fl->l_len = length - fl->l_start - 1; + fl->l_len = length - fl->l_start; pos = _lseek(fd, fl->l_start, fl->l_whence); if (pos != -1L)