Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Sep 2003 08:25:25 +0400 (MSD)
From:      Maxim Konovalov <maxim@macomnet.ru>
To:        Mike Silbersack <silby@silby.com>
Cc:        rwatson@freebsd.org
Subject:   Re: 4.8-stable kernel panic
Message-ID:  <20030915081818.F29770@news1.macomnet.ru>
In-Reply-To: <20030914230339.K1033@odysseus.silby.com>
References:  <16771.24.218.220.202.1063595471.squirrel@webmail.wvths.com> <20030914230339.K1033@odysseus.silby.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 14 Sep 2003, 23:05-0500, Mike Silbersack wrote:

>
> On Sun, 14 Sep 2003 sysadmin@wvths.com wrote:
>
> > Hello,
> >
> > It's been almost a month now since I posted the original message on the
> > list and I'm wondering about the progress on resolving this problem.
> >
> > I still can reproduce the panics after cvs-supping to RELENG_4 ~ 23:00 EDT
> > today.
> >
> > Thanks much.
>
> Ooops, I forgot to follow up on this.
>
> Ok, a few questions:
>
> 1.  Can you compile INVARIANTS and INVARIANT_SUPPORT into your kernel?
> That might help us track down the problem.
>
> 2.  What does your network setup look like?  Are you using divert sockets,
> is there ppp in action, etc.
>
> I believe that I tried out your script at the time, and I couldn't find it
> to cause any problems on my system.

rwatson has fixed this panic in rev. 1.115 in -current:

revision 1.115
date: 2003/08/26 14:11:48;  author: rwatson;  state: Exp;  lines: +2 -0
M_PREPEND() with an argument of M_TRYWAIT can fail, meaning the
returned mbuf can be NULL.  Check for NULL in rip_output() when
prepending an IP header.  This prevents mbuf exhaustion from
causing a local kernel panic when sending raw IP packets.

PR:             kern/55886
Reported by:    Pawel Malachowski <pawmal-posting@freebsd.lublin.pl>
MFC after:      3 days

and haven't MFCed it yet.  Here is a patch for -stable:

Index: sys/netinet/raw_ip.c
===================================================================
RCS file: /home/ncvs/src/sys/netinet/raw_ip.c,v
retrieving revision 1.64.2.17
diff -u -r1.64.2.17 raw_ip.c
--- sys/netinet/raw_ip.c	9 Sep 2003 19:09:22 -0000	1.64.2.17
+++ sys/netinet/raw_ip.c	15 Sep 2003 04:21:59 -0000
@@ -257,6 +257,8 @@
 			return(EMSGSIZE);
 		}
 		M_PREPEND(m, sizeof(struct ip), M_WAIT);
+		if (m == NULL)
+			return(ENOBUFS);
 		ip = mtod(m, struct ip *);
 		ip->ip_tos = inp->inp_ip_tos;
 		ip->ip_off = 0;
%%%

-- 
Maxim Konovalov, maxim@macomnet.ru, maxim@FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030915081818.F29770>