git: 9ab2bf0f4296 - main - inetd: use snprintf() in inetd_setproctitle()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 20 Oct 2026 22:06:59 UTC
The branch main has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=9ab2bf0f4296e8bfafe4dc70f2f200265e6933bd
commit 9ab2bf0f4296e8bfafe4dc70f2f200265e6933bd
Author: Osvaldo Janeri Filho <ojanerif@amd.com>
AuthorDate: 2026-10-20 15:40:28 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2026-10-20 22:04:31 +0000
inetd: use snprintf() in inetd_setproctitle()
inetd_setproctitle() formats se_service (the service name taken verbatim
from inetd.conf) and the peer address into an 80-byte buffer with
sprintf(). A long service name can overflow it. Bound both calls with
snprintf().
MFC after: 1 week
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D60879
---
usr.sbin/inetd/inetd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/usr.sbin/inetd/inetd.c b/usr.sbin/inetd/inetd.c
index 13302cf67b26..d98a0b307172 100644
--- a/usr.sbin/inetd/inetd.c
+++ b/usr.sbin/inetd/inetd.c
@@ -2094,9 +2094,9 @@ inetd_setproctitle(const char *a, int s)
if (getpeername(s, (struct sockaddr *)&ss, &size) == 0) {
getnameinfo((struct sockaddr *)&ss, size, pbuf, sizeof(pbuf),
NULL, 0, NI_NUMERICHOST);
- (void) sprintf(buf, "%s [%s]", a, pbuf);
+ (void) snprintf(buf, sizeof(buf), "%s [%s]", a, pbuf);
} else
- (void) sprintf(buf, "%s", a);
+ (void) snprintf(buf, sizeof(buf), "%s", a);
setproctitle("%s", buf);
}