diff options
| author | Igor Ryzhov <iryzhov@nfware.com> | 2022-02-08 20:31:34 +0300 |
|---|---|---|
| committer | Igor Ryzhov <iryzhov@nfware.com> | 2022-02-08 20:31:34 +0300 |
| commit | 60cda04dda2659b5bef684fe7b05ee0e501eb498 (patch) | |
| tree | 4e6554dacbf14f0b148f60671b91d5e81d80939d /vrrpd | |
| parent | 107f77b56f1bf4bc4b82668c738f1ff12b3967fb (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.c | 6 |
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); |
