From nobody Thu Jul 31 22:04:48 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4btNRP0KzMz6360G; Thu, 31 Jul 2025 22:04:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4btNRN6jPFz42rC; Thu, 31 Jul 2025 22:04:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1753999489; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JVTPE1OKhhDIUSbuKb+gLdAUVEZKRoOYIQmfMcJ5TY0=; b=J588AVQQ7xF+t35EDKr9yk+Ol54AjPTkzWUC2nGowOgC84Y8H5CVYkXYsTmGri3smCtxnl t91jrFX7SKsCIPDV07t5XZ4QdrRq6uFkdBuQ9y7yUFR2Z9/kZ0i/V4ZkMkeg8XP63zHIqA hTuWmSxrJx9HSd87D2bYyUvzQdpkkZJVT70YSJZS23XEHUsriwk6cDG0IvVDM287ZGqvkP /TnzlaBSVBsH7lXRPUbb/bOZlekgEXNJtB4IaV6AY4eAQKi86jv2bFBBFUYU3oOMwNUtsV dkVh3Q94KBner6MdUdrcs+LsltALeue/FxxIcdN2AjKc7jCGzuxGgtpgTT1TKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1753999489; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JVTPE1OKhhDIUSbuKb+gLdAUVEZKRoOYIQmfMcJ5TY0=; b=hrxbG3yVjLvGX44TCj1ergJwbFsTG9wHRlDSMOfDDbP1VHbFe4y7LHMIKaM+WWnBVs1m9R ojcXHWlz1yJ8T8lMCQ8O+oLy3oUg9cgXenGSqBOsVJyTNF9l+n+CLoHjrr2P9BIOUKom0j 1Pa9rXn2qGsRhcHHlIkjz1OExE6gQ6/217dS6Wv5UeUcBDSgo6+r1g49bKJeKqGppzrsOs kSBSbvSU028GWEVqm/AmL/syQk7yuKMN+1SmpqVXivmx7tZa/qq7XZDroSX6oxNFAAzjvb HaQE8oPnrEvVxHX29wJn662y6psF5cacWJa+Ebp1acNHeRoVm1DNu2QsKuz/Ug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1753999489; a=rsa-sha256; cv=none; b=WSIGVzwDoOfpsm5BtvhckILlR24cttg+VmAGnhGzLdnpcRN7ZPhQ0KaSWlxxOVzVrP9Fid KMcboAn71RJLmFXLxmAtKwjSNAmV06gqTIgzsD8IV5zZqUbIQq4j4WakZ2HvKqBEEnAs8o Vvucp/+CnIpScjOQW+9ksphDH3Lgh1VdrOrBKkQLP1pTCNmtumGykHh6FAONKGeyn96IXs xExJ68tD1H2qR9iU/7HGPG6Nvm5ubVNloXsBY6+NMuoHQbYyoUKKfcb6liznGm3M3yn/yG iyj/oIxqT/s+AbpJo+hUNXupX37GDLnWUyWOd4y+Jt7zWSmwIdjBR+UarRd8OQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4btNRN61hmz52B; Thu, 31 Jul 2025 22:04:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 56VM4m0x022237; Thu, 31 Jul 2025 22:04:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 56VM4mGZ022234; Thu, 31 Jul 2025 22:04:48 GMT (envelope-from git) Date: Thu, 31 Jul 2025 22:04:48 GMT Message-Id: <202507312204.56VM4mGZ022234@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Toomas Soome Subject: git: 733da235aa6a - main - libsa: errors with pointer conversion List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tsoome X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 733da235aa6a3c71d06b92a41656bad07fada5e6 Auto-Submitted: auto-generated The branch main has been updated by tsoome: URL: https://cgit.FreeBSD.org/src/commit/?id=733da235aa6a3c71d06b92a41656bad07fada5e6 commit 733da235aa6a3c71d06b92a41656bad07fada5e6 Author: Toomas Soome AuthorDate: 2025-07-31 19:11:16 +0000 Commit: Toomas Soome CommitDate: 2025-07-31 22:04:32 +0000 libsa: errors with pointer conversion loader ip implementation is using pointer to structure ip to receive the packet and is using this pointer to cast on other data types (namely structure arphdr). Problem does arise when those data structures are declared with different alignment rules and when/if the compiler does check those rules. To work around and silence warnings, use void * generic pointer instead. Error seen with gcc 14 (-Werror=address-of-packed-member). Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D51662 --- stand/libsa/ip.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/stand/libsa/ip.c b/stand/libsa/ip.c index 2c2acf2eda16..6c7b0844b14d 100644 --- a/stand/libsa/ip.c +++ b/stand/libsa/ip.c @@ -181,6 +181,7 @@ readipv4(struct iodesc *d, void **pkt, void **payload, time_t tleft, ssize_t n; size_t hlen; struct ether_header *eh; + void *buf; struct ip *ip; struct udphdr *uh; uint16_t etype; /* host order */ @@ -195,7 +196,7 @@ readipv4(struct iodesc *d, void **pkt, void **payload, time_t tleft, ip = NULL; ptr = NULL; - n = readether(d, (void **)&ptr, (void **)&ip, tleft, &etype); + n = readether(d, (void **)&ptr, (void **)&buf, tleft, &etype); if (n == -1 || n < sizeof(*ip) + sizeof(*uh)) { free(ptr); return (-1); @@ -205,7 +206,7 @@ readipv4(struct iodesc *d, void **pkt, void **payload, time_t tleft, /* Need to respond to ARP requests. */ if (etype == ETHERTYPE_ARP) { - struct arphdr *ah = (void *)ip; + struct arphdr *ah = buf; if (ah->ar_op == htons(ARPOP_REQUEST)) { /* Send ARP reply */ arp_reply(d, ah); @@ -224,6 +225,7 @@ readipv4(struct iodesc *d, void **pkt, void **payload, time_t tleft, return (-1); } + ip = buf; /* Check ip header */ if (ip->ip_v != IPVERSION || /* half char */ ip->ip_p != proto) {