aboutsummaryrefslogtreecommitdiff
path: root/src/platform/posix
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/posix')
-rw-r--r--src/platform/posix/posix_ipc.c7
-rw-r--r--src/platform/posix/posix_sockaddr.c5
2 files changed, 9 insertions, 3 deletions
diff --git a/src/platform/posix/posix_ipc.c b/src/platform/posix/posix_ipc.c
index 2daec4ea..f0a9a973 100644
--- a/src/platform/posix/posix_ipc.c
+++ b/src/platform/posix/posix_ipc.c
@@ -98,9 +98,14 @@ nni_plat_ipc_remove_stale(const char *path)
int fd;
int rv;
struct sockaddr_un sun;
+ size_t sz;
sun.sun_family = AF_UNIX;
- snprintf(sun.sun_path, sizeof(sun.sun_path), "%s", path);
+ sz = sizeof(sun.sun_path);
+
+ if (nni_strlcpy(sun.sun_path, path, sz) >= sz) {
+ return (NNG_EADDRINVAL);
+ }
if ((fd = socket(AF_UNIX, NNI_STREAM_SOCKTYPE, 0)) < 0) {
return (nni_plat_errno(errno));
diff --git a/src/platform/posix/posix_sockaddr.c b/src/platform/posix/posix_sockaddr.c
index 21a2b863..ea630b01 100644
--- a/src/platform/posix/posix_sockaddr.c
+++ b/src/platform/posix/posix_sockaddr.c
@@ -31,6 +31,7 @@ nni_posix_nn2sockaddr(void *sa, const nni_sockaddr *na)
const nng_sockaddr_in * nsin;
const nng_sockaddr_in6 * nsin6;
const nng_sockaddr_path *nspath;
+ size_t sz;
switch (na->s_un.s_family) {
case NNG_AF_INET:
@@ -59,8 +60,8 @@ nni_posix_nn2sockaddr(void *sa, const nni_sockaddr *na)
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)) {
+ sz = sizeof(spath->sun_path);
+ if (nni_strlcpy(spath->sun_path, nspath->sa_path, sz) >= sz) {
return (-1);
}
spath->sun_family = PF_UNIX;