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);