aboutsummaryrefslogtreecommitdiff
path: root/sys/net/route.h
diff options
context:
space:
mode:
authorAlexander V. Chernikov <melifaro@FreeBSD.org>2019-12-31 17:26:53 +0000
committerAlexander V. Chernikov <melifaro@FreeBSD.org>2019-12-31 17:26:53 +0000
commitc83dda362e75cb34f7178236f2aa5566ac18d079 (patch)
treee28f97d92c361b1d331b72098076e1188bef0449 /sys/net/route.h
parente11c9783e1451f4113af370c21ed6afffd1316d8 (diff)
downloadsrc-c83dda362e75cb34f7178236f2aa5566ac18d079.tar.gz
src-c83dda362e75cb34f7178236f2aa5566ac18d079.zip
Split gigantic rtsock route_output() into smaller functions.
Amount of changes to the original code has been intentionally minimised to ease diffing. The changes are mostly mechanical, with the following exceptions: * lltable handler is now called directly based of RTF_LLINFO flag presense. * "report" logic for updating rtm in RTM_GET/RTM_DELETE has been simplified, fixing several potential use-after-free cases in rt_addrinfo. * llable asserts has been replaced with error-returning, preventing kernel crashes when lltable gw af family is invalid (root required). MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D22864
Notes
Notes: svn path=/head/; revision=356236
Diffstat (limited to 'sys/net/route.h')
-rw-r--r--sys/net/route.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/net/route.h b/sys/net/route.h
index e287b2372b1e..cd077db262f0 100644
--- a/sys/net/route.h
+++ b/sys/net/route.h
@@ -145,6 +145,8 @@ struct rtentry {
*/
#define rt_key(r) (*((struct sockaddr **)(&(r)->rt_nodes->rn_key)))
#define rt_mask(r) (*((struct sockaddr **)(&(r)->rt_nodes->rn_mask)))
+#define rt_key_const(r) (*((const struct sockaddr * const *)(&(r)->rt_nodes->rn_key)))
+#define rt_mask_const(r) (*((const struct sockaddr * const *)(&(r)->rt_nodes->rn_mask)))
struct sockaddr *rt_gateway; /* value */
struct ifnet *rt_ifp; /* the answer: interface to use */
struct ifaddr *rt_ifa; /* the answer: interface address to use */