diff options
| author | 2006-03-15 11:22:16 +0000 | |
|---|---|---|
| committer | 2006-03-15 11:22:16 +0000 | |
| commit | 30479be7d51966f52397921cd4519aa07c869007 (patch) | |
| tree | 95a632a407b8a427feb57ea7f128d6ad25c8237a /sys/kern/sys_generic.c | |
| parent | if no key file are given when printing the DNS host record, use the (diff) | |
| download | wireguard-openbsd-30479be7d51966f52397921cd4519aa07c869007.tar.xz wireguard-openbsd-30479be7d51966f52397921cd4519aa07c869007.zip | |
copyout() the pollfds if poll() gets interrupted. This resets the revents
bitmask and makes poll() behave like documented in the man page.
OK deraadt@
Diffstat (limited to 'sys/kern/sys_generic.c')
| -rw-r--r-- | sys/kern/sys_generic.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c index 584d4f87783..548b2ef82fb 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sys_generic.c,v 1.51 2005/12/13 10:33:14 jsg Exp $ */ +/* $OpenBSD: sys_generic.c,v 1.52 2006/03/15 11:22:16 claudio Exp $ */ /* $NetBSD: sys_generic.c,v 1.24 1996/03/29 00:25:32 cgd Exp $ */ /* @@ -928,7 +928,9 @@ done: */ switch (error) { case ERESTART: - error = EINTR; + error = copyout(pl, SCARG(uap, fds), sz); + if (error == 0) + error = EINTR; break; case EWOULDBLOCK: case 0: |
