From 70914290a18a1c95c16ff5148d53f3dea52d2940 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 12 Apr 2002 14:18:51 +0000 Subject: [PATCH] fixed bug with not NUL-terminating the string in GAddress_UNIX_SetPath git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15113 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/unix/gsocket.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/unix/gsocket.c b/src/unix/gsocket.c index 0da32b61eb..85a38c699f 100644 --- a/src/unix/gsocket.c +++ b/src/unix/gsocket.c @@ -1605,6 +1605,8 @@ GSocketError _GAddress_Init_UNIX(GAddress *address) return GSOCK_NOERROR; } +#define UNIX_SOCK_PATHLEN (sizeof(addr->sun_path)/sizeof(addr->sun_path[0])) + GSocketError GAddress_UNIX_SetPath(GAddress *address, const char *path) { struct sockaddr_un *addr; @@ -1614,7 +1616,8 @@ GSocketError GAddress_UNIX_SetPath(GAddress *address, const char *path) CHECK_ADDRESS(address, UNIX); addr = ((struct sockaddr_un *)address->m_addr); - memcpy(addr->sun_path, path, strlen(path)); + strncpy(addr->sun_path, path, UNIX_SOCK_PATHLEN); + addr->sun_path[UNIX_SOCK_PATHLEN - 1] = '\0'; return GSOCK_NOERROR; }