From b7a5d41ffef561815c92c18ec055cb051c19ac79 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 5 Apr 2022 18:25:24 +0200 Subject: [PATCH] glib-aux: add assertions for valid prefix length (cherry picked from commit 9ce4a1652357ded586adeb653ac4c94383ad1ca0) (cherry picked from commit 0180a9fca5c1f273597233b07e66075b890a1f2f) --- src/libnm-glib-aux/nm-shared-utils.c | 5 +++-- src/libnm-glib-aux/nm-shared-utils.h | 3 +-- src/libnm-glib-aux/tests/test-shared-general.c | 3 --- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/libnm-glib-aux/nm-shared-utils.c b/src/libnm-glib-aux/nm-shared-utils.c index c3341b2029..2d21113345 100644 --- a/src/libnm-glib-aux/nm-shared-utils.c +++ b/src/libnm-glib-aux/nm-shared-utils.c @@ -6320,9 +6320,10 @@ nm_utils_ip6_address_same_prefix_cmp(const struct in6_addr *addr_a, int nbytes; guint8 va, vb, m; - if (plen >= 128) + if (plen >= 128) { + nm_assert(plen == 128); NM_CMP_DIRECT_MEMCMP(addr_a, addr_b, sizeof(struct in6_addr)); - else { + } else { nbytes = plen / 8; if (nbytes) NM_CMP_DIRECT_MEMCMP(addr_a, addr_b, nbytes); diff --git a/src/libnm-glib-aux/nm-shared-utils.h b/src/libnm-glib-aux/nm-shared-utils.h index 63c105132a..8a3038cba7 100644 --- a/src/libnm-glib-aux/nm-shared-utils.h +++ b/src/libnm-glib-aux/nm-shared-utils.h @@ -398,6 +398,7 @@ gboolean nm_utils_get_ipv6_interface_identifier(NMLinkType link_type, static inline in_addr_t _nm_utils_ip4_prefix_to_netmask(guint32 prefix) { + nm_assert(prefix <= 32); return prefix < 32 ? ~htonl(0xFFFFFFFFu >> prefix) : 0xFFFFFFFFu; } @@ -455,8 +456,6 @@ nm_utils_ip_address_same_prefix_cmp(int addr_family, gconstpointer addr_b, guint8 plen) { - nm_assert_addr_family(addr_family); - NM_CMP_SELF(addr_a, addr_b); if (NM_IS_IPv4(addr_family)) { diff --git a/src/libnm-glib-aux/tests/test-shared-general.c b/src/libnm-glib-aux/tests/test-shared-general.c index ecba02e0c2..46689947e1 100644 --- a/src/libnm-glib-aux/tests/test-shared-general.c +++ b/src/libnm-glib-aux/tests/test-shared-general.c @@ -283,9 +283,6 @@ test_nm_utils_ip4_prefix_to_netmask(void) g_assert_cmpint(_nm_utils_ip4_prefix_to_netmask(32), ==, nmtst_inet4_from_string("255.255.255.255")); - g_assert_cmpint(_nm_utils_ip4_prefix_to_netmask(33), - ==, - nmtst_inet4_from_string("255.255.255.255")); } /*****************************************************************************/