From d1d91a91f4b0e9dffe3de5d7274a1ef9b9f5078a Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 19 May 2022 15:58:53 +0200 Subject: [PATCH] glib-aux/tests: fix and extend static assertions for NMIPAddr alignment On m68k, integers are 2-byte aligned. Hence the assertion was wrong. What we really want to check, is that NMIPAddr has not a smaller alignment than in_addr_t and similar. While at it, also assert the alignment for NMEtherAddr. (cherry picked from commit 835554a4dba8638dc6f837a74719ed175f8f52c7) --- src/libnm-glib-aux/nm-shared-utils.c | 3 +++ src/libnm-glib-aux/tests/test-shared-general.c | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/libnm-glib-aux/nm-shared-utils.c b/src/libnm-glib-aux/nm-shared-utils.c index 02a15425cc..e6ee04d7cd 100644 --- a/src/libnm-glib-aux/nm-shared-utils.c +++ b/src/libnm-glib-aux/nm-shared-utils.c @@ -133,6 +133,9 @@ nm_ip_addr_set_from_variant(int addr_family, gpointer dst, GVariant *variant, in G_STATIC_ASSERT(ETH_ALEN == sizeof(struct ether_addr)); G_STATIC_ASSERT(ETH_ALEN == 6); +G_STATIC_ASSERT(ETH_ALEN == sizeof(NMEtherAddr)); + +G_STATIC_ASSERT(_nm_alignof(struct ether_addr) <= _nm_alignof(NMEtherAddr)); /*****************************************************************************/ diff --git a/src/libnm-glib-aux/tests/test-shared-general.c b/src/libnm-glib-aux/tests/test-shared-general.c index 46689947e1..e7fd2b6b56 100644 --- a/src/libnm-glib-aux/tests/test-shared-general.c +++ b/src/libnm-glib-aux/tests/test-shared-general.c @@ -23,10 +23,10 @@ G_STATIC_ASSERT(NM_AF_INET_SIZE == sizeof(in_addr_t)); G_STATIC_ASSERT(NM_AF_INET_SIZE == sizeof(struct in_addr)); G_STATIC_ASSERT(NM_AF_INET6_SIZE == sizeof(struct in6_addr)); -G_STATIC_ASSERT(4 == _nm_alignof(in_addr_t)); -G_STATIC_ASSERT(4 == _nm_alignof(struct in_addr)); -G_STATIC_ASSERT(4 == _nm_alignof(struct in6_addr)); -G_STATIC_ASSERT(4 == _nm_alignof(NMIPAddr)); +G_STATIC_ASSERT(_nm_alignof(in_addr_t) <= _nm_alignof(NMIPAddr)); +G_STATIC_ASSERT(_nm_alignof(struct in_addr) <= _nm_alignof(NMIPAddr)); +G_STATIC_ASSERT(_nm_alignof(struct in6_addr) <= _nm_alignof(NMIPAddr)); +G_STATIC_ASSERT(_nm_alignof(NMEtherAddr) <= _nm_alignof(NMIPAddr)); /*****************************************************************************/