Return to BSD News archive
Newsgroups: comp.unix.bsd Path: sserve!manuel.anu.edu.au!munnari.oz.au!spool.mu.edu!agate!tfs.com!julian From: julian@tfs.com (Julian Elischer) Subject: IMPORTANT PATCH! Message-ID: <1992Nov3.071934.25466@tfs.com> Organization: Trw Financial Systems Date: Tue, 3 Nov 1992 07:19:34 GMT Lines: 49 The following patch fixes a randomly initialised variable in the icmp and raw socket code that can cause 'ping' and 'traceroute' to never fully close their socket's internal structures leading to a geometrically increasing number of lost mbufs until the system runs out of appropriate virtual space, at which time the system panics with a 'kmem_alloc: map too small' and halts. EVERY time you run ping and traceroute you make the problem worse The 'rights' entry should not be there. julian +----------------------------------+ ______ _ __ | __--_|\ Julian Elischer | \ U \/ / On assignment | / \ julian@tfs.com +------>x USA \ in a very strange | ( OZ ) 2118 Milvia st. Berkeley CA. \___ ___ | country ! +- X_.---._/ USA+(510) 704-3137(wk) \_/ \\ v *** netinet/raw_ip.c.orig Mon Nov 2 23:09:51 1992 --- netinet/raw_ip.c Mon Nov 2 23:10:30 1992 *************** *** 189,198 **** } /*ARGSUSED*/ ! rip_usrreq(so, req, m, nam, rights, control) register struct socket *so; int req; ! struct mbuf *m, *nam, *rights, *control; { register int error = 0; register struct raw_inpcb *rp = sotorawinpcb(so); --- 189,198 ---- } /*ARGSUSED*/ ! rip_usrreq(so, req, m, nam, control) register struct socket *so; int req; ! struct mbuf *m, *nam, *control; { register int error = 0; register struct raw_inpcb *rp = sotorawinpcb(so);