summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2014-07-01 13:30:50 -0700
committerMichael Adam <obnox@samba.org>2014-07-02 10:18:17 +0200
commit47748606dc903ab7b834eeaa337246764201af76 (patch)
tree6c1644d874a668f7325e5e75f703183f436aaa46
parentfbd418d2f666c3e2af31d34667b63c03fdca6ca6 (diff)
downloadsamba-47748606dc903ab7b834eeaa337246764201af76.tar.gz
samba-47748606dc903ab7b834eeaa337246764201af76.tar.xz
samba-47748606dc903ab7b834eeaa337246764201af76.zip
s3: smbd: Locking, fix off-by one calculation in brl_pending_overlap().
Consider: lock = start=110,size=10 pend_lock = 100, size=10 Do not overlap. However, (lock->start <= pend_lock->start + pend_lock->size) 110 100 10 is true, so it returns true (overlap). lock->start <= pend_lock->start + pend_lock->size should be: lock->start < pend_lock->start + pend_lock->size BUG: https://bugzilla.samba.org/show_bug.cgi?id=10685 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Michael Adam <obnox@samba.org> Autobuild-User(master): Michael Adam <obnox@samba.org> Autobuild-Date(master): Wed Jul 2 10:18:17 CEST 2014 on sn-devel-104
-rw-r--r--source3/locking/brlock.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/source3/locking/brlock.c b/source3/locking/brlock.c
index e134aacd9b..2ab70929f3 100644
--- a/source3/locking/brlock.c
+++ b/source3/locking/brlock.c
@@ -263,7 +263,7 @@ static bool brl_pending_overlap(const struct lock_struct *lock, const struct loc
{
if ((lock->start <= pend_lock->start) && (lock->start + lock->size > pend_lock->start))
return True;
- if ((lock->start >= pend_lock->start) && (lock->start <= pend_lock->start + pend_lock->size))
+ if ((lock->start >= pend_lock->start) && (lock->start < pend_lock->start + pend_lock->size))
return True;
return False;
}