summaryrefslogtreecommitdiff
path: root/eigrpd/eigrp_siareply.c
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@diac24.net>2017-05-17 22:06:39 +0200
committerGitHub <noreply@github.com>2017-05-17 22:06:39 +0200
commitbac7b7b935162915bbefb7d01ce55eb364635c0b (patch)
treeb2ce709376fa69429fa336f8239f25b0a89e7b14 /eigrpd/eigrp_siareply.c
parente89f016d3e882010c70689432ad9e7f7c32df224 (diff)
parent910a5c0e21145755b0d849b11b81df8e78d0e871 (diff)
Merge pull request #537 from donaldsharp/vrf_stuff
Vrf stuff
Diffstat (limited to 'eigrpd/eigrp_siareply.c')
-rw-r--r--eigrpd/eigrp_siareply.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/eigrpd/eigrp_siareply.c b/eigrpd/eigrp_siareply.c
index ecce154bf6..dbf451800e 100644
--- a/eigrpd/eigrp_siareply.c
+++ b/eigrpd/eigrp_siareply.c
@@ -79,16 +79,17 @@ eigrp_siareply_receive (struct eigrp *eigrp, struct ip *iph, struct eigrp_header
type = stream_getw(s);
if (type == EIGRP_TLV_IPv4_INT)
{
+ struct prefix_ipv4 dest_addr;
+
stream_set_getp(s, s->getp - sizeof(u_int16_t));
tlv = eigrp_read_ipv4_tlv(s);
- struct prefix_ipv4 *dest_addr;
- dest_addr = prefix_ipv4_new();
- dest_addr->prefix = tlv->destination;
- dest_addr->prefixlen = tlv->prefix_length;
+ dest_addr.family = AFI_IP;
+ dest_addr.prefix = tlv->destination;
+ dest_addr.prefixlen = tlv->prefix_length;
struct eigrp_prefix_entry *dest =
- eigrp_topology_table_lookup_ipv4(eigrp->topology_table, dest_addr);
+ eigrp_topology_table_lookup_ipv4(eigrp->topology_table, &dest_addr);
/* If the destination exists (it should, but one never know)*/
if (dest != NULL)
@@ -160,6 +161,8 @@ eigrp_send_siareply (struct eigrp_neighbor *nbr, struct eigrp_prefix_entry *pe)
eigrp_send_packet_reliably(nbr);
}
}
+ else
+ eigrp_packet_free(ep);
}