summaryrefslogtreecommitdiffstats
path: root/sys/compat/linux/linux_socket.c
diff options
context:
space:
mode:
authorgluk <gluk@openbsd.org>2001-06-20 23:23:14 +0000
committergluk <gluk@openbsd.org>2001-06-20 23:23:14 +0000
commit738230a3ceff58ec8af1bec9a90f6ab97c907012 (patch)
tree7300b3ab05961f8af640822d4adcdebd8e5b1ce8 /sys/compat/linux/linux_socket.c
parentcircumvent a 32-bit integer arithmetic overflow (diff)
downloadwireguard-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