Author: glebius
Date: Fri May 27 17:31:02 2016
New Revision: 300854
URL: https://svnweb.freebsd.org/changeset/base/300854
Log:
Plug route reference underleak that happens with FLOWTABLE after r297225.
Submitted by: Mike Karels <mike karels.net>
Modified:
head/sys/netinet/ip_output.c
head/sys/netinet6/ip6_output.c
Modified: head/sys/netinet/ip_output.c
==============================================================================
--- head/sys/netinet/ip_output.c Fri May 27 17:07:07 2016
(r300853)
+++ head/sys/netinet/ip_output.c Fri May 27 17:31:02 2016
(r300854)
@@ -701,7 +701,11 @@ sendit:
IPSTAT_INC(ips_fragmented);
done:
- if (ro == &iproute)
+ /*
+ * Release the route if using our private route, or if
+ * (with flowtable) we don't have our own reference.
+ */
+ if (ro == &iproute || ro->ro_flags & RT_NORTREF)
RO_RTFREE(ro);
else if (rte == NULL)
/*
Modified: head/sys/netinet6/ip6_output.c
==============================================================================
--- head/sys/netinet6/ip6_output.c Fri May 27 17:07:07 2016
(r300853)
+++ head/sys/netinet6/ip6_output.c Fri May 27 17:31:02 2016
(r300854)
@@ -1053,7 +1053,11 @@ sendorfree:
IP6STAT_INC(ip6s_fragmented);
done:
- if (ro == &ip6route)
+ /*
+ * Release the route if using our private route, or if
+ * (with flowtable) we don't have our own reference.
+ */
+ if (ro == &ip6route || ro->ro_flags & RT_NORTREF)
RO_RTFREE(ro);
return (error);
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"