Date: Fri, 03 Aug 2001 14:04:45 -0300 From: "Daniel C. Sobral" <daniel.sobral@tcoip.com.br> To: Bill Fenner <fenner@research.att.com> Cc: ru@FreeBSD.ORG, mjacob@FreeBSD.ORG, stable@FreeBSD.ORG Subject: Re: Request for testers: multicast patch Message-ID: <3B6AD9AD.10403@tcoip.com.br> References: <200108031553.IAA17847@windsor.research.att.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Bill Fenner wrote:
> It looks like the patch causes packets not to be sent if
> ia == 0. The inner part of the sendorfree: loop went from
>
> if (error == 0) {
> update if stats
> call if_output
> }
>
> to
>
> if (error == 0 && ia) {
> update ia stats
> call if_output
> }
>
> where I think it's more likely correct to do
>
> if (error == 0) {
> if (ia) update ia state
> call if_output
> }
>
> I realize this bug was just introducd in rev 1.131, but let's not propogate
> it to stable.
Duh! This is plain wrong. Stable is correct and needs no patch, as evidenced by the patch itself:
@@ -936,7 +942,7 @@
/* clean ipsec history once it goes out of the node */
ipsec_delaux(m);
#endif
- if (error == 0) {
+ if (error == 0 && ia) {
/* Record statistics for this interface address. */
if (ia != NULL) {
ia->ia_ifa.if_opackets++;
You see that the statistics are _already_ checked for ia == NULL. In the
other point where we added the check for ia == NULL on current stable
was correct too, I just didn't notice it was correct on both places when
I generated the patch.
I just wonder when and why the test went out of the window on current.
I'll fix it (the patch and current).
--
Daniel C. Sobral (8-DCS)
Daniel.Sobral@tcoip.com.br
dcs@newsguy.com
dcs@freebsd.org
capo@notorious.bsdconspiracy.net
Men of peace usually are [brave].
-- Spock, "The Savage Curtain", stardate 5906.5
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3B6AD9AD.10403>
