summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorvisa <visa@openbsd.org>2019-01-06 12:59:45 +0000
committervisa <visa@openbsd.org>2019-01-06 12:59:45 +0000
commitec412da11be49c25266553c64da7e06a018ba909 (patch)
tree448321fd2d08343c136e4be46e6c0fcbf75db7c3 /lib/libc
parentRewrite ip_pcbopts() to fill a fresh mbuf with the ip options instead (diff)
downloadwireguard-openbsd-ec412da11be49c25266553c64da7e06a018ba909.tar.xz
wireguard-openbsd-ec412da11be49c25266553c64da7e06a018ba909.zip
Fix unsafe use of ptsignal() in mi_switch().
ptsignal() has to be called with the kernel lock held. As ensuring the locking in mi_switch() is not easy, and deferring the signaling using the task API is not possible because of lock order issues in mi_switch(), move the CPU time checking into a periodic timer where the kernel can be locked without issues. With this change, each process has a dedicated resource check timer. The timer gets activated only when a CPU time limit is set. Because the checking is not done as frequently as before, some precision is lost. Use of timers adapted from FreeBSD. OK tedu@ Reported-by: syzbot+2f5d62256e3280634623@syzkaller.appspotmail.com
Diffstat (limited to 'lib/libc')
0 files changed, 0 insertions, 0 deletions