summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_socket.c
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2017-08-10 06:59:26 +0000
committerdelphij <delphij@FreeBSD.org>2017-08-10 06:59:26 +0000
commit82d137a0d8be5edd7243ab4a253b076ceb9f5633 (patch)
tree1398b970a9b8e825947bce39f4908bb775cc0cdb /sys/kern/sys_socket.c
parent348f5311d13a14a86bd5e73cfac8ac707498b87c (diff)
downloadFreeBSD-src-82d137a0d8be5edd7243ab4a253b076ceb9f5633.zip
FreeBSD-src-82d137a0d8be5edd7243ab4a253b076ceb9f5633.tar.gz
Fix OpenSSH Denial of Service vulnerability. [SA-17:06]releng/11.0
Fix VNET kernel panic with asynchronous I/O. [EN-17:07] Approved by: so
Diffstat (limited to 'sys/kern/sys_socket.c')
-rw-r--r--sys/kern/sys_socket.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/sys_socket.c b/sys/kern/sys_socket.c
index 80c55dd..2be2123 100644
--- a/sys/kern/sys_socket.c
+++ b/sys/kern/sys_socket.c
@@ -673,6 +673,7 @@ soaio_process_sb(struct socket *so, struct sockbuf *sb)
{
struct kaiocb *job;
+ CURVNET_SET(so->so_vnet);
SOCKBUF_LOCK(sb);
while (!TAILQ_EMPTY(&sb->sb_aiojobq) && soaio_ready(so, sb)) {
job = TAILQ_FIRST(&sb->sb_aiojobq);
@@ -696,6 +697,7 @@ soaio_process_sb(struct socket *so, struct sockbuf *sb)
ACCEPT_LOCK();
SOCK_LOCK(so);
sorele(so);
+ CURVNET_RESTORE();
}
void
OpenPOWER on IntegriCloud