summaryrefslogtreecommitdiff
path: root/vrrpd
diff options
context:
space:
mode:
authorIgor Ryzhov <iryzhov@nfware.com>2022-02-08 20:31:34 +0300
committerIgor Ryzhov <iryzhov@nfware.com>2022-02-08 20:31:34 +0300
commit60cda04dda2659b5bef684fe7b05ee0e501eb498 (patch)
tree4e6554dacbf14f0b148f60671b91d5e81d80939d /vrrpd
parent107f77b56f1bf4bc4b82668c738f1ff12b3967fb (diff)
*: use ipaddr_cmp instead of memcmp
Using memcmp is wrong because struct ipaddr may contain unitialized padding bytes that should not be compared. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Diffstat (limited to 'vrrpd')
-rw-r--r--vrrpd/vrrp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/vrrpd/vrrp.c b/vrrpd/vrrp.c
index 5c34c66df5..f91803337d 100644
--- a/vrrpd/vrrp.c
+++ b/vrrpd/vrrp.c
@@ -405,7 +405,7 @@ static bool vrrp_has_ip(struct vrrp_vrouter *vr, struct ipaddr *ip)
struct ipaddr *iter;
for (ALL_LIST_ELEMENTS_RO(r->addrs, ln, iter))
- if (!memcmp(&iter->ip, &ip->ip, IPADDRSZ(ip)))
+ if (!ipaddr_cmp(iter, ip))
return true;
return false;
@@ -484,7 +484,7 @@ int vrrp_del_ip(struct vrrp_vrouter *vr, struct ipaddr *ip)
return 0;
for (ALL_LIST_ELEMENTS(r->addrs, ln, nn, iter))
- if (!memcmp(&iter->ip, &ip->ip, IPADDRSZ(ip)))
+ if (!ipaddr_cmp(iter, ip))
list_delete_node(r->addrs, ln);
/*
@@ -903,7 +903,7 @@ static int vrrp_recv_advertisement(struct vrrp_router *r, struct ipaddr *src,
switch (r->fsm.state) {
case VRRP_STATE_MASTER:
- addrcmp = memcmp(&src->ip, &r->src.ip, IPADDRSZ(src));
+ addrcmp = ipaddr_cmp(src, &r->src);
if (pkt->hdr.priority == 0) {
vrrp_send_advertisement(r);