diff options
author | qingli <qingli@FreeBSD.org> | 2009-08-28 05:37:31 +0000 |
---|---|---|
committer | qingli <qingli@FreeBSD.org> | 2009-08-28 05:37:31 +0000 |
commit | eb767da59e573130ba17bc5dfa19349d38c249a9 (patch) | |
tree | c2f26601ab53d35e9e9b6dd7e60ae19e711e7c0f /sys/netinet | |
parent | 6473998f11e5e4f47e9e3c20102502ea24a70fc7 (diff) | |
download | FreeBSD-src-eb767da59e573130ba17bc5dfa19349d38c249a9.zip FreeBSD-src-eb767da59e573130ba17bc5dfa19349d38c249a9.tar.gz |
Do not try to free the rt_lle entry of the cached route in
ip_output() if the cached route was not initialized from the
flow-table. The rt_lle entry is invalid unless it has been
initialized through the flow-table.
Reviewed by: kmacy, rwatson
MFC after: immediately
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/ip_output.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index 2ce94b5..e222cda 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -202,10 +202,8 @@ again: if (ro->ro_rt && ((ro->ro_rt->rt_flags & RTF_UP) == 0 || dst->sin_family != AF_INET || dst->sin_addr.s_addr != ip->ip_dst.s_addr)) { - if (!nortfree) { + if (!nortfree) RTFREE(ro->ro_rt); - LLE_FREE(ro->ro_lle); - } ro->ro_rt = (struct rtentry *)NULL; ro->ro_lle = (struct llentry *)NULL; } |