From owner-freebsd-hackers Tue Nov 28 23:40:42 2000 Delivered-To: freebsd-hackers@freebsd.org Received: from shell.unixbox.com (shell.unixbox.com [207.211.45.65]) by hub.freebsd.org (Postfix) with ESMTP id 3336637B699 for ; Tue, 28 Nov 2000 23:40:40 -0800 (PST) Received: from localhost (fengyue@localhost) by shell.unixbox.com (8.11.1/8.11.0) with ESMTP id eAT7gt804865 for ; Tue, 28 Nov 2000 23:42:55 -0800 (PST) Date: Tue, 28 Nov 2000 23:42:55 -0800 (PST) From: FengYue X-Sender: fengyue@shell.unixbox.com To: hackers@FreeBSD.ORG Subject: [PATCH] Re: crash on 4.2-stable In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG After adding couple of printf() to fil.c and ip_state.c, I'm now pretty sure that ofin with initialized fin_v in ip_state.c is causing the crash. I could see that by doing a traceroute to ipv4 IP on the machine, the fin_v sometimes gets a value of 6 that makes the IPV6 code gets executed in fil.c (but I wasn't able to reproduce the crash) I've a very simple patch here. Could someone take a look? Is it good enough or should I do the ofin.fin_v = ip->ip_v; in ip_state.c before calling fr_makefrip() instead? Thanks --------------------cut here---------------------------- *** fil.c Wed Jul 19 16:27:54 2000 --- fil_new.c Tue Nov 28 23:17:42 2000 *************** *** 221,227 **** #ifdef _KERNEL fin->fin_icode = ipl_unreach; #endif ! v = fin->fin_v; fi->fi_v = v; fin->fin_hlen = hlen; if (v == 4) { --- 221,227 ---- #ifdef _KERNEL fin->fin_icode = ipl_unreach; #endif ! v = fin->fin_v = ip->ip_v; fi->fi_v = v; fin->fin_hlen = hlen; if (v == 4) { To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message