]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed bug with not NUL-terminating the string in GAddress_UNIX_SetPath
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 12 Apr 2002 14:18:51 +0000 (14:18 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 12 Apr 2002 14:18:51 +0000 (14:18 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15113 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/unix/gsocket.c

index 0da32b61eb9741d64628d705b87af43a80b9bc57..85a38c699f63e7be550c976e24a5c2663d320272 100644 (file)
@@ -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;
 }