diff options
author | Jeremy Allison <jra@samba.org> | 2014-07-01 13:30:50 -0700 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2014-07-02 10:18:17 +0200 |
commit | 47748606dc903ab7b834eeaa337246764201af76 (patch) | |
tree | 6c1644d874a668f7325e5e75f703183f436aaa46 | |
parent | fbd418d2f666c3e2af31d34667b63c03fdca6ca6 (diff) | |
download | samba-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.c | 2 |
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; } |