diff options
Diffstat (limited to 'bfdd/bfd_packet.c')
| -rw-r--r-- | bfdd/bfd_packet.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/bfdd/bfd_packet.c b/bfdd/bfd_packet.c index 6b0afef65f..d34d642762 100644 --- a/bfdd/bfd_packet.c +++ b/bfdd/bfd_packet.c @@ -219,8 +219,8 @@ void ptm_bfd_echo_fp_snd(struct bfd_session *bfd) /* add eth hdr */ eth = (struct ethhdr *)(sendbuff); - memcpy(eth->h_source, bfd->ifp->hw_addr, sizeof(bfd->ifp->hw_addr)); - memcpy(eth->h_dest, bfd->peer_hw_addr, sizeof(bfd->peer_hw_addr)); + memcpy(eth->h_source, bfd->ifp->hw_addr, sizeof(eth->h_source)); + memcpy(eth->h_dest, bfd->peer_hw_addr, sizeof(eth->h_dest)); total_len += sizeof(struct ethhdr); @@ -1569,6 +1569,7 @@ int bp_echo_socket(const struct vrf *vrf) -1) { zlog_warn("%s: setsockopt(SO_ATTACH_FILTER): %s", __func__, strerror(errno)); + close(s); return -1; } @@ -1579,6 +1580,7 @@ int bp_echo_socket(const struct vrf *vrf) if (bind(s, (struct sockaddr *)&sll, sizeof(sll)) < 0) { zlog_warn("Failed to bind echo socket: %s", safe_strerror(errno)); + close(s); return -1; } |
