aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorKyle Evans <kevans@FreeBSD.org>2019-12-31 04:53:50 +0000
committerKyle Evans <kevans@FreeBSD.org>2019-12-31 04:53:50 +0000
commita1cedb80c6d5ead59bed88f54ff5553f2815b248 (patch)
tree985530be33dab1e2eb19e9a51810eba04f0b750a /usr.sbin
parent1c3b9acf2ed7483d48ec7d0da5df120bdf7d2d0e (diff)
downloadsrc-a1cedb80c6d5ead59bed88f54ff5553f2815b248.tar.gz
src-a1cedb80c6d5ead59bed88f54ff5553f2815b248.zip
inetd: prefer strlcpy to strlen(3) check + strcpy(3), NFC
This is again functionally equivalent but more concise.
Notes
Notes: svn path=/head/; revision=356218
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/inetd/inetd.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/usr.sbin/inetd/inetd.c b/usr.sbin/inetd/inetd.c
index 1c4f9761f028..b25d1e447ac4 100644
--- a/usr.sbin/inetd/inetd.c
+++ b/usr.sbin/inetd/inetd.c
@@ -1612,6 +1612,7 @@ getconfigent(void)
int v6bind;
#endif
int i;
+ size_t unsz;
#ifdef IPSEC
policy = NULL;
@@ -1832,16 +1833,18 @@ more:
break;
#endif
case AF_UNIX:
- if (strlen(sep->se_service) >= sizeof(sep->se_ctrladdr_un.sun_path)) {
- syslog(LOG_ERR,
+#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)) {
+ syslog(LOG_ERR,
"domain socket pathname too long for service %s",
sep->se_service);
goto more;
}
- memset(&sep->se_ctrladdr, 0, sizeof(sep->se_ctrladdr));
- sep->se_ctrladdr_un.sun_family = sep->se_family;
- sep->se_ctrladdr_un.sun_len = strlen(sep->se_service);
- strcpy(sep->se_ctrladdr_un.sun_path, sep->se_service);
+ sep->se_ctrladdr_un.sun_len = unsz;
+#undef SUN_PATH_MAXSIZE
sep->se_ctrladdr_size = SUN_LEN(&sep->se_ctrladdr_un);
}
arg = sskip(&cp);