CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2016/06/13 15:24:43
Modified files:
sys/sys : mbuf.h
sys/kern : uipc_mbuf.c uipc_socket.c
sys/netinet : tcp_output.c
share/man/man9 : sosplice.9
lib/libc/sys : getsockopt.2
Log message:
On localhost a user program may create a socket splicing loop.
After writing data into this loop, it was spinning forever causing
a kernel hang. Detect the loop by counting how often the same mbuf
is spliced. If that happens 128 times, assume that there is a loop
and abort the splicing with ELOOP.
Bug found by tedu@; OK tedu@ millert@ benno@