From: Donald Sharp Date: Wed, 14 Sep 2016 19:17:50 +0000 (-0400) Subject: zebra: Fix broken rib_match X-Git-Tag: frr-2.0-rc1~306 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=d71f1c4e6f97a6bb1250a962c1e875e6d65a6c93;p=mirror%2Ffrr.git zebra: Fix broken rib_match rib_match is broken because the prefix is being treated as a char * pointer instead of the correct data type. Signed-off-by: Donald Sharp (cherry picked from commit 8b5d6c95781b7c55faa957a2d3edf00c1ecb5c5a) --- diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index 3812101431..1378d008ca 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -764,12 +764,16 @@ rib_match (afi_t afi, safi_t safi, vrf_id_t vrf_id, memset (&p, 0, sizeof (struct prefix)); p.family = afi; - p.u.prefix = *(u_char *)addr; - p.prefixlen = IPV4_MAX_PREFIXLEN; if (afi == AFI_IP) - p.prefixlen = IPV4_MAX_PREFIXLEN; + { + p.u.prefix4 = addr->ipv4; + p.prefixlen = IPV4_MAX_PREFIXLEN; + } else - p.prefixlen = IPV6_MAX_PREFIXLEN; + { + p.u.prefix6 = addr->ipv6; + p.prefixlen = IPV6_MAX_PREFIXLEN; + } rn = route_node_match (table, (struct prefix *) &p);