X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5c9eff305505d6e3a63026c542004d518d997d2a..9f4de6b2cf06f53a98b28f53640f3b9ec8cf4182:/src/unix/gsocket.c?ds=sidebyside diff --git a/src/unix/gsocket.c b/src/unix/gsocket.c index 9fa98f1f47..85a38c699f 100644 --- a/src/unix/gsocket.c +++ b/src/unix/gsocket.c @@ -351,7 +351,6 @@ GAddress *GSocket_GetPeer(GSocket *socket) */ GSocketError GSocket_SetServer(GSocket *sck) { - int type; int arg = 1; assert(sck != NULL); @@ -1500,7 +1499,9 @@ GSocketError GAddress_INET_SetPortName(GAddress *address, const char *port, se = getservbyname(port, protocol); if (!se) { - if (isdigit(port[0])) + /* the cast to int suppresses compiler warnings about subscript having the + type char */ + if (isdigit((int)port[0])) { int port_int; @@ -1604,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; @@ -1613,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; }