From 5143dcee8698cd6d99faae95e9a18ba75184665f Mon Sep 17 00:00:00 2001 From: Gleb Smirnoff Date: Mon, 5 May 2025 11:29:58 -0700 Subject: [PATCH] Don't use CLLADDR() on FreeBSD. This macro was removed in FreeBSD 15. There is no reason to use it in this code on any version of FreeBSD. The constness is provided by the const struct sockaddr_dl * pointer. The base type of char of sdl_data gives us all needed address arithmetics, no need to use the relic c_caddr_t. --- gen/util.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gen/util.c b/gen/util.c index 5beeb6e..d95f707 100644 --- a/gen/util.c +++ b/gen/util.c @@ -351,7 +351,8 @@ getiflinkaddr(const char *ifname, struct ether_addr *addr) if ((sdl->sdl_type == IFT_ETHER) && (sdl->sdl_alen == ETHER_ADDR_LEN)) { - memcpy(addr, (const struct ether_addr *)CLLADDR(sdl), ETHER_ADDR_LEN); + memcpy(addr, sdl->sdl_data + sdl->sdl_nlen, + ETHER_ADDR_LEN); found = 1; break; }