From 6b66debe7532bd7c3b0c88da7332315d90a84d43 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Mon, 21 Aug 2017 12:17:51 -0700 Subject: Validate that we do not overrun sun_path in sockaddr_un. --- src/platform/posix/posix_sockaddr.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/platform') diff --git a/src/platform/posix/posix_sockaddr.c b/src/platform/posix/posix_sockaddr.c index 59e1ebee..21a2b863 100644 --- a/src/platform/posix/posix_sockaddr.c +++ b/src/platform/posix/posix_sockaddr.c @@ -58,9 +58,12 @@ nni_posix_nn2sockaddr(void *sa, const nni_sockaddr *na) spath = (void *) sa; nspath = &na->s_un.s_path; memset(spath, 0, sizeof(*spath)); + // Make sure that the path fits! + if (snprintf(spath->sun_path, sizeof(spath->sun_path), "%s", + nspath->sa_path) >= sizeof(spath->sun_path)) { + return (-1); + } spath->sun_family = PF_UNIX; - snprintf(spath->sun_path, sizeof(spath->sun_path), "%s", - nspath->sa_path); return (sizeof(*spath)); } return (-1); -- cgit v1.2.3-70-g09d2