diff options
| author | 2001-06-20 23:23:14 +0000 | |
|---|---|---|
| committer | 2001-06-20 23:23:14 +0000 | |
| commit | 738230a3ceff58ec8af1bec9a90f6ab97c907012 (patch) | |
| tree | 7300b3ab05961f8af640822d4adcdebd8e5b1ce8 /sys/compat/linux/linux_socket.c | |
| parent | circumvent a 32-bit integer arithmetic overflow (diff) | |
| download | wireguard-openbsd-738230a3ceff58ec8af1bec9a90f6ab97c907012.tar.xz wireguard-openbsd-738230a3ceff58ec8af1bec9a90f6ab97c907012.zip | |
Fix PR1826. tsleep in lf_setlock can return 0 if process was ptrace'd,
but not wakeup'ed. In this case one entry can be placed twice at list of
blocked locks. As a result block list contain an entry which points to
itself. lf_wakelock can't remove such an entry and system livelocks
trying to remove a bad entry from block list.
Other changes include:
- repair debug functions and make vfs_lockf.c compilable with LOCKF_DEBUG
- simplify debug printing and remove useless debugging
- remove unnecessary casting, replace NOLOCKF with NULL
- free -> FREE (use one form over the file)
- convert list of blocked locks to use TAILQ_* macroses
- lf_addblock() -> TAILQ_INSERT_TAIL
- Fix bug in lf_findoverlap(): in old code
if (end == -1) && (lf->lf_end == -1) && (lf->lf_start <= start)
then lf_findoverlap() return 4 instead of 2
- work more carefully with pointers (probably fix one or two bugs)
- use wakeup_one()
- KNF
Diffstat (limited to 'sys/compat/linux/linux_socket.c')
0 files changed, 0 insertions, 0 deletions
