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); _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"