Module Name: src Committed By: riastradh Date: Thu Mar 30 17:48:10 UTC 2023
Modified Files: src/sys/compat/common: if_43.c src/sys/netatalk: ddp_output.c Log Message: atalk(4): Omit spurious satosat. The input is already a struct sockaddr_at pointer. To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 src/sys/compat/common/if_43.c cvs rdiff -u -r1.21 -r1.22 src/sys/netatalk/ddp_output.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/compat/common/if_43.c diff -u src/sys/compat/common/if_43.c:1.26 src/sys/compat/common/if_43.c:1.27 --- src/sys/compat/common/if_43.c:1.26 Wed Sep 28 15:32:09 2022 +++ src/sys/compat/common/if_43.c Thu Mar 30 17:48:10 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: if_43.c,v 1.26 2022/09/28 15:32:09 msaitoh Exp $ */ +/* $NetBSD: if_43.c,v 1.27 2023/03/30 17:48:10 riastradh Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1990, 1993 @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_43.c,v 1.26 2022/09/28 15:32:09 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_43.c,v 1.27 2023/03/30 17:48:10 riastradh Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -254,20 +254,29 @@ compat_ifioctl(struct socket *so, u_long } switch (ocmd) { + enum { maxlen = sizeof(oifr->ifr_ifru) }; + CTASSERT(maxlen == 16); + socklen_t famlen; case OSIOCSIFADDR: case OSIOCSIFDSTADDR: case OSIOCSIFBRDADDR: case OSIOCSIFNETMASK: sa = &ifr->ifr_addr; #if BYTE_ORDER != BIG_ENDIAN - if (sa->sa_family == 0 && sa->sa_len < 16) { + if (sa->sa_family == 0 && sa->sa_len < maxlen) { sa->sa_family = sa->sa_len; - sa->sa_len = 16; + sa->sa_len = maxlen; } #else if (sa->sa_len == 0) - sa->sa_len = 16; + sa->sa_len = maxlen; #endif + famlen = sockaddr_getsize_by_family(sa->sa_family); + if (famlen > sa->sa_len) { + curlwp_bindx(bound); + return EAFNOSUPPORT; + } + break; } Index: src/sys/netatalk/ddp_output.c diff -u src/sys/netatalk/ddp_output.c:1.21 src/sys/netatalk/ddp_output.c:1.22 --- src/sys/netatalk/ddp_output.c:1.21 Sat Feb 17 19:10:18 2018 +++ src/sys/netatalk/ddp_output.c Thu Mar 30 17:48:10 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_output.c,v 1.21 2018/02/17 19:10:18 rjs Exp $ */ +/* $NetBSD: ddp_output.c,v 1.22 2023/03/30 17:48:10 riastradh Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ddp_output.c,v 1.21 2018/02/17 19:10:18 rjs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ddp_output.c,v 1.22 2023/03/30 17:48:10 riastradh Exp $"); #include "opt_atalk.h" #include <sys/param.h> @@ -172,7 +172,7 @@ ddp_route(struct mbuf *m, struct route * } elh = mtod(m, struct elaphdr *); - elh->el_snode = satosat(&aa->aa_addr)->sat_addr.s_node; + elh->el_snode = aa->aa_addr.sat_addr.s_node; elh->el_type = ELAP_DDPEXTEND; if (ntohs(satocsat(rtcache_getdst(ro))->sat_addr.s_net) >= ntohs(aa->aa_firstnet) &&