From: "Omar Polo" Subject: smtpd: less casting around m_get_sockaddr() To: tech@openbsd.org Date: Thu, 29 Oct 2026 09:37:19 +0100 m_get_sockaddr() gets a sockaddr, but all callers are actually passing a sockaddr_storage. maybe we can have less casting. ok? diff -s /usr/src path + /usr/src (staged changes) commit - d284dec97d37a05b69b78bc296868cbd8b92870e blob - 449f38e79c4d2648bf39e791a3b32f2534abe820 blob + 2a40d0d5f285db19139eec7358cc2f02c172d8a4 --- usr.sbin/smtpd/lka.c +++ usr.sbin/smtpd/lka.c @@ -131,7 +131,7 @@ lka_imsg(struct mproc *p, struct imsg *imsg) m_msg(&m, imsg); m_get_id(&m, &reqid); m_get_string(&m, &tablename); - m_get_sockaddr(&m, (struct sockaddr *)&ss); + m_get_sockaddr(&m, &ss); m_end(&m); ret = lka_addrname(tablename, (struct sockaddr*)&ss, @@ -238,7 +238,7 @@ lka_imsg(struct mproc *p, struct imsg *imsg) m_msg(&m, imsg); m_get_id(&m, &reqid); m_get_string(&m, &tablename); - m_get_sockaddr(&m, (struct sockaddr *)&ss); + m_get_sockaddr(&m, &ss); m_end(&m); ret = lka_addrname(tablename, (struct sockaddr*)&ss, @@ -376,8 +376,8 @@ lka_imsg(struct mproc *p, struct imsg *imsg) m_get_id(&m, &reqid); m_get_string(&m, &rdns); m_get_int(&m, &fcrdns); - m_get_sockaddr(&m, (struct sockaddr *)&ss_src); - m_get_sockaddr(&m, (struct sockaddr *)&ss_dest); + m_get_sockaddr(&m, &ss_src); + m_get_sockaddr(&m, &ss_dest); m_end(&m); lka_report_smtp_link_connect(direction, &tv, reqid, rdns, fcrdns, &ss_src, &ss_dest); commit - d284dec97d37a05b69b78bc296868cbd8b92870e blob - 5e3da81e2c685552761c7f538b49893b1b6fef45 blob + 116a4d22ca578b7e0f9cfd836959795f1947d83e --- usr.sbin/smtpd/mproc.c +++ usr.sbin/smtpd/mproc.c @@ -584,14 +584,14 @@ m_get_id(struct msg *m, uint64_t *id) } void -m_get_sockaddr(struct msg *m, struct sockaddr *sa) +m_get_sockaddr(struct msg *m, struct sockaddr_storage *ss) { size_t len; m_get_size(m, &len); - if (len > sizeof(struct sockaddr_storage)) + if (len > sizeof(*ss)) m_error("sockaddr size too large"); - m_get(m, sa, len); + m_get(m, ss, len); } void commit - d284dec97d37a05b69b78bc296868cbd8b92870e blob - ecc38f8959113f82cbc6c1dbd29097773b6333aa blob + 06a81d1fc69ec2591abe93f685bacacf86029595 --- usr.sbin/smtpd/mta.c +++ usr.sbin/smtpd/mta.c @@ -220,7 +220,7 @@ mta_imsg(struct mproc *p, struct imsg *imsg) m_get_id(&m, &reqid); m_get_int(&m, &status); if (status == LKA_OK) - m_get_sockaddr(&m, (struct sockaddr*)&ss); + m_get_sockaddr(&m, &ss); m_end(&m); relay = tree_xpop(&wait_source, reqid); @@ -249,7 +249,7 @@ mta_imsg(struct mproc *p, struct imsg *imsg) m_msg(&m, imsg); m_get_id(&m, &reqid); m_get_string(&m, &hostname); - m_get_sockaddr(&m, (struct sockaddr*)&ss); + m_get_sockaddr(&m, &ss); m_get_int(&m, &preference); m_end(&m); domain = tree_xget(&wait_mx, reqid); @@ -405,7 +405,7 @@ mta_imsg(struct mproc *p, struct imsg *imsg) case IMSG_CTL_MTA_BLOCK: m_msg(&m, imsg); - m_get_sockaddr(&m, (struct sockaddr*)&ss); + m_get_sockaddr(&m, &ss); m_get_string(&m, &dom); m_end(&m); source = mta_source((struct sockaddr*)&ss); @@ -422,7 +422,7 @@ mta_imsg(struct mproc *p, struct imsg *imsg) case IMSG_CTL_MTA_UNBLOCK: m_msg(&m, imsg); - m_get_sockaddr(&m, (struct sockaddr*)&ss); + m_get_sockaddr(&m, &ss); m_get_string(&m, &dom); m_end(&m); source = mta_source((struct sockaddr*)&ss); commit - d284dec97d37a05b69b78bc296868cbd8b92870e 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); m_get_int(&m, &flags); m_end(&m); @@ -323,7 +323,7 @@ resolver_dispatch_result(struct mproc *proc, struct im m_get_int(&m, &tai.ai_family); m_get_int(&m, &tai.ai_socktype); m_get_int(&m, &tai.ai_protocol); - m_get_sockaddr(&m, (struct sockaddr *)&ss); + m_get_sockaddr(&m, &ss); m_get_string(&m, &cname); m_end(&m); commit - d284dec97d37a05b69b78bc296868cbd8b92870e blob - f11b6872b7f4b066b19e37802ac0c899cda68495 blob + 2ccc416fcfa40d6f5bb28a9fa6dcb3aa5c30fccb --- usr.sbin/smtpd/smtpd.h +++ usr.sbin/smtpd/smtpd.h @@ -1488,7 +1488,7 @@ void m_get_data(struct msg *, const void **, size_t *) void m_get_evpid(struct msg *, uint64_t *); void m_get_msgid(struct msg *, uint32_t *); void m_get_id(struct msg *, uint64_t *); -void m_get_sockaddr(struct msg *, struct sockaddr *); +void m_get_sockaddr(struct msg *, struct sockaddr_storage *); void m_get_mailaddr(struct msg *, struct mailaddr *); void m_get_envelope(struct msg *, struct envelope *); void m_get_params(struct msg *, struct dict *);