Index | Thread | Search

From:
Theo Buehler <tb@theobuehler.org>
Subject:
Re: smtpd: less casting around m_get_sockaddr()
To:
Omar Polo <op@omarpolo.com>
Cc:
tech@openbsd.org
Date:
Thu, 29 Oct 2026 09:59:15 +0100

Download raw body.

Thread
On Thu, Oct 29, 2026 at 09:37:19AM +0100, Omar Polo wrote:
> m_get_sockaddr() gets a sockaddr, but all callers are actually passing a
> sockaddr_storage.  maybe we can have less casting.

You could consider changing lka_addrname() and mta_source() in a later
step.

> blob - 4d12f443a33330b29f09ab67a1737b55a721ad00
> blob + aaabb175b4e839fb0885d001354171c24c4a2b81
> --- usr.sbin/smtpd/resolver.c
> +++ usr.sbin/smtpd/resolver.c
> @@ -199,7 +199,7 @@ resolver_dispatch_request(struct mproc *proc, struct i
>  
>  	case IMSG_GETNAMEINFO:
>  		sa = (struct sockaddr*)&ss;
> -		m_get_sockaddr(&m, sa);
> +		m_get_sockaddr(&m, &ss);

While this is fine, I don't particularly love the order here. Maybe get
rid of sa and pass (struct sockaddr *)&ss to getnameinfo_async() in a
followup?

ok tb