mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-13 04:29:09 +08:00
Cygwin: lockf: Fix adding a new lock over multiple locks
Previously, adding a new lock by lockf() over multiple existing locks failed. This is due to a bug that lf_setlock() tries to create a lock that has already been created. This patch fixes the issue. Addresses: https://cygwin.com/pipermail/cygwin/2024-October/256528.html Fixes: a998dd705576 ("* flock.cc: Implement all advisory file locking here.") Reported-by: Christian Franke <Christian.Franke@t-online.de> Reviewed-by: Corinna Vinschen <corinna@vinschen.de> Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
This commit is contained in:
parent
142c3c3ebd
commit
b76735a571
@ -1454,13 +1454,14 @@ lf_setlock (lockf_t *lock, inode_t *node, lockf_t **clean, HANDLE fhdl)
|
||||
/*
|
||||
* Add the new lock before overlap.
|
||||
*/
|
||||
if (needtolink) {
|
||||
if (needtolink)
|
||||
{
|
||||
*prev = lock;
|
||||
lock->lf_next = overlap;
|
||||
}
|
||||
lock->create_lock_obj ();
|
||||
}
|
||||
overlap->lf_start = lock->lf_end + 1;
|
||||
lf_wakelock (overlap, fhdl);
|
||||
lock->create_lock_obj ();
|
||||
overlap->create_lock_obj ();
|
||||
break;
|
||||
}
|
||||
|
@ -12,3 +12,7 @@ Fixes:
|
||||
Addresses: https://sourceware.org/pipermail/cygwin/2024-September/256468.html
|
||||
|
||||
- Fix timer_delete() return value which always indicated failure.
|
||||
|
||||
- Fix lockf() error which occurs when adding a new lock over multiple
|
||||
locks.
|
||||
Addresses: https://cygwin.com/pipermail/cygwin/2024-October/256528.html
|
||||
|
Loading…
x
Reference in New Issue
Block a user