From owner-freebsd-bugs Fri Jul 14 7:20: 8 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 84B2537C6FF for ; Fri, 14 Jul 2000 07:20:05 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id HAA74972; Fri, 14 Jul 2000 07:20:05 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Date: Fri, 14 Jul 2000 07:20:05 -0700 (PDT) Message-Id: <200007141420.HAA74972@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Peter Pentchev Subject: Re: kern/19544: panic in delete_pipe (ipfw pipe delete) Reply-To: Peter Pentchev Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR kern/19544; it has been noted by GNATS. From: Peter Pentchev To: freebsd-gnats-submit@freebsd.org Cc: Subject: Re: kern/19544: panic in delete_pipe (ipfw pipe delete) Date: Fri, 14 Jul 2000 17:18:13 +0300 The attached patch solves this problem for me. I think that with the upcoming 4.1-release, it would be nice if the kernel panicked on one less occassion ;) Granted, this panic only comes as a result of an incorrect ipfw command, but how long ago was the last time you issued a command out of sequence? G'luck, Peter ---------------------------------------------- Hey, out there - is it *you* reading me, or is it someone else? diff -c src/sys/netinet/ip_dummynet.c mysrc/sys/netinet/ip_dummynet.c *** src/sys/netinet/ip_dummynet.c Tue Jun 27 18:40:50 2000 --- mysrc/sys/netinet/ip_dummynet.c Tue Jun 27 18:35:11 2000 *************** *** 1546,1551 **** --- 1546,1554 ---- struct dn_pipe *a, *b; struct dn_flow_set *fs; + if (all_pipes == NULL) + return EINVAL; /* no pipes defined, nothing to do */ + /* locate pipe */ for (a = NULL , b = all_pipes ; b && b->pipe_nr < p->pipe_nr ; a = b , b = b->next) ; *************** *** 1581,1586 **** --- 1584,1592 ---- free(b, M_IPFW); } else { /* this is a dummynet queue (dn_flow_set) */ struct dn_flow_set *a, *b; + + if (all_flow_sets == NULL) + return EINVAL; /* no flow sets defined, nothing to do */ /* locate set */ for (a = NULL, b = all_flow_sets ; b && b->fs_nr < p->fs.fs_nr ; To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message