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
This commit is contained in:
@@ -1605,6 +1605,8 @@ GSocketError _GAddress_Init_UNIX(GAddress *address)
|
|||||||
return GSOCK_NOERROR;
|
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)
|
GSocketError GAddress_UNIX_SetPath(GAddress *address, const char *path)
|
||||||
{
|
{
|
||||||
struct sockaddr_un *addr;
|
struct sockaddr_un *addr;
|
||||||
@@ -1614,7 +1616,8 @@ GSocketError GAddress_UNIX_SetPath(GAddress *address, const char *path)
|
|||||||
CHECK_ADDRESS(address, UNIX);
|
CHECK_ADDRESS(address, UNIX);
|
||||||
|
|
||||||
addr = ((struct sockaddr_un *)address->m_addr);
|
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;
|
return GSOCK_NOERROR;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user