¥S73991 9 711 711 154 374 293 1389 766 201 174 K 10 svn:author V 3 dec K 8 svn:date V 27 2001-03-08T13:57:41.000000Z K 7 svn:log V 618 Submitted by: Ian Dowse , David Cross Reviewed by: David Cross , jkh Approved by: jkh Obtained from: Ian Dowse , David Cross We have been running this patch on a production NIS server for 2.5 weeks now. Normally we would have ypserv die at least once a week, and often many times a day. This patch treats and error from select as zeroing out the FD_SET to indicate that no fds are ready for reading. This is safe because the rpc code always re-inits the FDSET before calling select. END K 10 svn:author V 3 dec K 8 svn:date V 27 2001-03-08T14:04:43.000000Z K 7 svn:log V 618 Submitted by: Ian Dowse , David Cross Reviewed by: David Cross , jkh Approved by: jkh Obtained from: Ian Dowse , David Cross We have been running this patch on a production NIS server for 2.5 weeks now. Normally we would have ypserv die at least once a week, and often many times a day. This patch treats and error from select as zeroing out the FD_SET to indicate that no fds are ready for reading. This is safe because the rpc code always re-inits the FDSET before calling select. END K 10 svn:author V 4 kato K 8 svn:date V 27 2001-03-08T14:25:51.000000Z K 7 svn:log V 61 Replaced p (undeclared) with curproc (after i386/isa/npx.c). END K 10 svn:author V 8 gallatin K 8 svn:date V 27 2001-03-08T15:17:38.000000Z K 7 svn:log V 276 Take the KINFO_PROC_SIZE back down to 912 on alpha. Since the compiler lays out the stuct so that pointers are naturally (8-byte) aligned aligned, adding the int ki_layout didn't change the size of the stuct; it just converted the alignment padding to a usable struct field. END K 10 svn:author V 8 dwmalone K 8 svn:date V 27 2001-03-08T16:28:10.000000Z K 7 svn:log V 195 Make the wait for sendfile buffers interruptable. Stops one process consuming them all and then getting stuck. Reviewed by: dg Reviewed by: bmilekic Observed by: Andreas Persson END K 10 svn:author V 7 iedowse K 8 svn:date V 27 2001-03-08T19:03:26.000000Z K 7 svn:log V 1291 It was possible for ip_forward() to supply to icmp_error() an IP header with ip_len in network byte order. For certain values of ip_len, this could cause icmp_error() to write beyond the end of an mbuf, causing mbuf free-list corruption. This problem was observed during generation of ICMP redirects. We now make quite sure that the copy of the IP header kept for icmp_error() is stored in a non-shared mbuf header so that it will not be modified by ip_output(). Also: - Calculate the correct number of bytes that need to be retained for icmp_error(), instead of assuming that 64 is enough (it's not). - In icmp_error(), use m_copydata instead of bcopy() to copy from the supplied mbuf chain, in case the first 8 bytes of IP payload are not stored directly after the IP header. - Sanity-check ip_len in icmp_error(), and panic if it is less than sizeof(struct ip). Incoming packets with bad ip_len values are discarded in ip_input(), so this should only be triggered by bugs in the code, not by bad packets. This patch results from code and suggestions from Ruslan, Bosko, Jonathan Lemon and Matt Dillon, with important testing by Mike Tancsa, who could reproduce this problem at will. Reported by: Mike Tancsa Reviewed by: ru, bmilekic, jlemon, dillon END K 10 svn:author V 8 bmilekic K 8 svn:date V 27 2001-03-08T19:21:45.000000Z K 7 svn:log V 668 Fix is a similar race condition as existed in the mbuf code. When we go into an interruptable sleep and we increment a sleep count, we make sure that we are the thread that will decrement the count when we wakeup. Otherwise, what happens is that if we get interrupted (signal) and we have to wake up, but before we get our mutex, some thread that wants to wake us up detects that the count is non-zero and so enters wakeup_one(), but there's nothing on the sleep queue and so we don't get woken up. The thread will still decrement the sleep count, which is bad because we will also decrement it again later (as we got interrupted) and are already off the sleep queue. END K 10 svn:author V 6 archie K 8 svn:date V 27 2001-03-08T20:10:02.000000Z K 7 svn:log V 105 Fix potential crash caused by packets with bogus ACK's. Reported by: Fabien THOMAS END K 10 svn:author V 6 archie K 8 svn:date V 27 2001-03-08T22:34:49.000000Z K 7 svn:log V 79 MFC: fix potential crash caused by packets with bogus ACK's. Approved by: jkh END