Page MenuHomeFreeBSD

D7591.id19526.diff
No OneTemporary

D7591.id19526.diff

Index: sys/netinet6/ip6_output.c
===================================================================
--- sys/netinet6/ip6_output.c
+++ sys/netinet6/ip6_output.c
@@ -87,6 +87,7 @@
#include <net/if.h>
#include <net/if_var.h>
+#include <net/if_llatbl.h>
#include <net/netisr.h>
#include <net/route.h>
#include <net/pfil.h>
@@ -552,6 +553,9 @@
rt = ro->ro_rt;
ifp = ro->ro_rt->rt_ifp;
} else {
+ if (ro->ro_lle)
+ LLE_FREE(ro->ro_lle); /* zeros ro_lle */
+ ro->ro_lle = NULL;
if (fwd_tag == NULL) {
bzero(&dst_sa, sizeof(dst_sa));
dst_sa.sin6_family = AF_INET6;
@@ -821,6 +825,9 @@
} else {
RO_RTFREE(ro);
needfiblookup = 1; /* Redo the routing table lookup. */
+ if (ro->ro_lle)
+ LLE_FREE(ro->ro_lle); /* zeros ro_lle */
+ ro->ro_lle = NULL;
}
}
/* See if fib was changed by packet filter. */
@@ -829,6 +836,9 @@
fibnum = M_GETFIB(m);
RO_RTFREE(ro);
needfiblookup = 1;
+ if (ro->ro_lle)
+ LLE_FREE(ro->ro_lle); /* zeros ro_lle */
+ ro->ro_lle = NULL;
}
if (needfiblookup)
goto again;
Index: sys/netinet6/udp6_usrreq.c
===================================================================
--- sys/netinet6/udp6_usrreq.c
+++ sys/netinet6/udp6_usrreq.c
@@ -898,7 +898,7 @@
UDP_PROBE(send, NULL, inp, ip6, inp, udp6);
UDPSTAT_INC(udps_opackets);
- error = ip6_output(m, optp, NULL, flags,
+ error = ip6_output(m, optp, &inp->inp_route6, flags,
inp->in6p_moptions, NULL, inp);
break;
case AF_INET:

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 8, 11:40 AM (15 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29404618
Default Alt Text
D7591.id19526.diff (1 KB)

Event Timeline