Date: Fri, 12 Feb 2010 00:45:29 +0000 (UTC) From: Kip Macy <kmacy@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r203793 - user/kmacy/head_flowtable_v6/sys/net Message-ID: <201002120045.o1C0jTP3040187@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kmacy Date: Fri Feb 12 00:45:29 2010 New Revision: 203793 URL: http://svn.freebsd.org/changeset/base/203793 Log: add assert of family type Modified: user/kmacy/head_flowtable_v6/sys/net/flowtable.c user/kmacy/head_flowtable_v6/sys/net/flowtable.h Modified: user/kmacy/head_flowtable_v6/sys/net/flowtable.c ============================================================================== --- user/kmacy/head_flowtable_v6/sys/net/flowtable.c Fri Feb 12 00:07:56 2010 (r203792) +++ user/kmacy/head_flowtable_v6/sys/net/flowtable.c Fri Feb 12 00:45:29 2010 (r203793) @@ -1023,15 +1023,16 @@ flowtable_lookup(struct flowtable *ft, s sro.ro_rt = sro6.ro_rt = NULL; sro.ro_lle = sro6.ro_lle = NULL; - ro = &sro; + ro = NULL; hash = 0; flags |= ft->ft_flags; proto = flags_to_proto(flags); #ifdef INET if (ssa->ss_family == AF_INET) { struct sockaddr_in *ssin, *dsin; - memcpy(&ro->ro_dst, &dsa, sizeof(struct sockaddr_in)); + ro = &sro; + memcpy(&ro->ro_dst, &dsa, sizeof(struct sockaddr_in)); dsin = (struct sockaddr_in *)dsa; ssin = (struct sockaddr_in *)ssa; if ((ntohl(dsin->sin_addr.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET || @@ -1046,7 +1047,7 @@ flowtable_lookup(struct flowtable *ft, s struct sockaddr_in6 *ssin6, *dsin6; ro = (struct route *)&sro6; - memcpy(&ro->ro_dst, &dsa, + memcpy(&sro6.ro_dst, &dsa, sizeof(struct sockaddr_in6)); dsin6 = (struct sockaddr_in6 *)dsa; ssin6 = (struct sockaddr_in6 *)ssa; @@ -1107,6 +1108,10 @@ uncached: * receive the route locked */ + if ((ro->ro_dst.sa_family != AF_INET) && + (ro->ro_dst.sa_family != AF_INET6)) + panic("sa_family == %d\n", ro->ro_dst.sa_family); + ft->ft_rtalloc(ro, hash, fibnum); if (ro->ro_rt == NULL) error = ENETUNREACH; Modified: user/kmacy/head_flowtable_v6/sys/net/flowtable.h ============================================================================== --- user/kmacy/head_flowtable_v6/sys/net/flowtable.h Fri Feb 12 00:07:56 2010 (r203792) +++ user/kmacy/head_flowtable_v6/sys/net/flowtable.h Fri Feb 12 00:45:29 2010 (r203793) @@ -46,6 +46,8 @@ $FreeBSD$ struct flowtable; struct flentry; +struct route; +struct route_in6; VNET_DECLARE(struct flowtable *, ip_ft); #define V_ip_ft VNET(ip_ft)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201002120045.o1C0jTP3040187>