Date: Tue, 16 Feb 2021 02:25:24 GMT From: Kyle Evans <kevans@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 46cccd5ceb75 - stable/13 - inetd: fix unix sockaddr's length assignment Message-ID: <202102160225.11G2POGX037717@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=46cccd5ceb75b67a19459ced93f9b13a52722c63 commit 46cccd5ceb75b67a19459ced93f9b13a52722c63 Author: Kyle Evans <kevans@FreeBSD.org> AuthorDate: 2021-02-12 19:19:43 +0000 Commit: Kyle Evans <kevans@FreeBSD.org> CommitDate: 2021-02-16 02:25:15 +0000 inetd: fix unix sockaddr's length assignment unsz was always exactly '1' here due to an unfortunate mispositioning of closing parenthesis. While it's generally irrelevant because bind(2) is passed the (accurate) sep->se_ctrladdr_size instead, it's not very helpful for anything locally that wants to use it rather than assuming that sep->se_ctrladdr_size perfectly fits the end of sun_path. Just drop unsz entirely and use the result of SUN_LEN() for it. (cherry picked from commit 1253835121cb38fd93478849e32a4a4c13436fb2) --- usr.sbin/inetd/inetd.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/usr.sbin/inetd/inetd.c b/usr.sbin/inetd/inetd.c index 7ba51c9af593..6c4e26fad5cd 100644 --- a/usr.sbin/inetd/inetd.c +++ b/usr.sbin/inetd/inetd.c @@ -1624,7 +1624,6 @@ getconfigent(void) int v6bind; #endif int i; - size_t unsz; #ifdef IPSEC policy = NULL; @@ -1852,16 +1851,16 @@ more: #define SUN_PATH_MAXSIZE sizeof(sep->se_ctrladdr_un.sun_path) memset(&sep->se_ctrladdr, 0, sizeof(sep->se_ctrladdr)); sep->se_ctrladdr_un.sun_family = sep->se_family; - if ((unsz = strlcpy(sep->se_ctrladdr_un.sun_path, - sep->se_service, SUN_PATH_MAXSIZE) >= SUN_PATH_MAXSIZE)) { + if (strlcpy(sep->se_ctrladdr_un.sun_path, sep->se_service, + SUN_PATH_MAXSIZE) >= SUN_PATH_MAXSIZE) { syslog(LOG_ERR, "domain socket pathname too long for service %s", sep->se_service); goto more; } - sep->se_ctrladdr_un.sun_len = unsz; #undef SUN_PATH_MAXSIZE - sep->se_ctrladdr_size = SUN_LEN(&sep->se_ctrladdr_un); + sep->se_ctrladdr_size = sep->se_ctrladdr_un.sun_len = + SUN_LEN(&sep->se_ctrladdr_un); } arg = sskip(&cp); if (!strncmp(arg, "wait", 4))
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202102160225.11G2POGX037717>