diff options
author | Stefano Brivio <sbrivio@redhat.com> | 2022-03-15 17:57:55 +0100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2022-03-28 17:11:40 +0200 |
commit | 5ca555cf7808eac4d73ad7423d40484692f1fb81 (patch) | |
tree | 00f8957f6536925f84bf034f950cbf697a451fd3 | |
parent | 5eb7604203c733ffd803636c9f8a1a25cec7851d (diff) | |
download | passt-5ca555cf7808eac4d73ad7423d40484692f1fb81.tar passt-5ca555cf7808eac4d73ad7423d40484692f1fb81.tar.gz passt-5ca555cf7808eac4d73ad7423d40484692f1fb81.tar.bz2 passt-5ca555cf7808eac4d73ad7423d40484692f1fb81.tar.lz passt-5ca555cf7808eac4d73ad7423d40484692f1fb81.tar.xz passt-5ca555cf7808eac4d73ad7423d40484692f1fb81.tar.zst passt-5ca555cf7808eac4d73ad7423d40484692f1fb81.zip |
dhcpv6, tap, tcp: Use IN6_ARE_ADDR_EQUAL instead of open-coded memcmp()
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
-rw-r--r-- | dhcpv6.c | 2 | ||||
-rw-r--r-- | tap.c | 4 | ||||
-rw-r--r-- | tcp.c | 12 |
3 files changed, 9 insertions, 9 deletions
@@ -354,7 +354,7 @@ ia_ta: req_addr = (struct in6_addr *)(ia_addr + 1); - if (memcmp(addr, req_addr, sizeof(*addr))) { + if (!IN6_ARE_ADDR_EQUAL(addr, req_addr)) { info("DHCPv6: requested address %s not on link", inet_ntop(AF_INET6, req_addr, buf, sizeof(buf))); @@ -542,8 +542,8 @@ resume: #define L4_MATCH(ip6h, proto, uh, seq) \ (seq->protocol == proto && \ seq->source == uh->source && seq->dest == uh->dest && \ - !memcmp(&seq->saddr, &ip6h->saddr, sizeof(seq->saddr)) && \ - !memcmp(&seq->daddr, &ip6h->daddr, sizeof(seq->daddr))) + IN6_ARE_ADDR_EQUAL(&seq->saddr, &ip6h->saddr) && \ + IN6_ARE_ADDR_EQUAL(&seq->daddr, &ip6h->daddr)) #define L4_SET(ip6h, proto, uh, seq) \ do { \ @@ -853,7 +853,7 @@ static int tcp_rtt_dst_low(struct tcp_conn *conn) int i; for (i = 0; i < LOW_RTT_TABLE_SIZE; i++) - if (!memcmp(&conn->a.a6, low_rtt_dst + i, sizeof(conn->a.a6))) + if (IN6_ARE_ADDR_EQUAL(&conn->a.a6, low_rtt_dst + i)) return 1; return 0; @@ -874,7 +874,7 @@ static void tcp_rtt_dst_check(struct tcp_conn *conn, struct tcp_info *tinfo) return; for (i = 0; i < LOW_RTT_TABLE_SIZE; i++) { - if (!memcmp(&conn->a.a6, low_rtt_dst + i, sizeof(conn->a.a6))) + if (IN6_ARE_ADDR_EQUAL(&conn->a.a6, low_rtt_dst + i)) return; if (hole == -1 && IN6_IS_ADDR_UNSPECIFIED(low_rtt_dst + i)) hole = i; @@ -1181,7 +1181,7 @@ static int tcp_hash_match(struct tcp_conn *conn, int af, void *addr, return 1; if (af == AF_INET6 && - !memcmp(&conn->a.a6, addr, sizeof(conn->a.a6)) && + IN6_ARE_ADDR_EQUAL(&conn->a.a6, addr) && conn->tap_port == tap_port && conn->sock_port == sock_port) return 1; @@ -2047,7 +2047,7 @@ static void tcp_conn_from_tap(struct ctx *c, int af, void *addr, if (!c->no_map_gw) { if (af == AF_INET && addr4.sin_addr.s_addr == c->gw4) addr4.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - if (af == AF_INET6 && !memcmp(addr, &c->gw6, sizeof(c->gw6))) + if (af == AF_INET6 && IN6_ARE_ADDR_EQUAL(addr, &c->gw6)) addr6.sin6_addr = in6addr_loopback; } @@ -2699,8 +2699,8 @@ static void tcp_conn_from_sock(struct ctx *c, union epoll_ref ref, memcpy(&sa6, &sa, sizeof(sa6)); if (IN6_IS_ADDR_LOOPBACK(&sa6.sin6_addr) || - !memcmp(&sa6.sin6_addr, &c->addr6_seen, sizeof(c->gw6)) || - !memcmp(&sa6.sin6_addr, &c->addr6, sizeof(c->gw6))) { + IN6_ARE_ADDR_EQUAL(&sa6.sin6_addr, &c->addr6_seen) || + IN6_ARE_ADDR_EQUAL(&sa6.sin6_addr, &c->addr6)) { struct in6_addr *src; if (IN6_IS_ADDR_LINKLOCAL(&c->gw6)) |