if(ret <0 || ret > 65535 ) error_exit("bad port: %s", port);
if (strncmp(host, "local:", 6) == 0) {
- struct sockaddr *sockun = (struct sockaddr *)addr;
- sockun->sa_family = AF_UNIX;
- strncpy(((struct sockaddr_un *)sockun)->sun_path, host + 6,
- sizeof(((struct sockaddr_un *)sockun)->sun_path));
+ struct sockaddr_un *sockun = (struct sockaddr_un *)addr;
+ struct sockaddr *sock = (struct sockaddr *)addr;
+ sock->sa_family = AF_UNIX;
+ strncpy(sockun->sun_path, host + 6, sizeof(sockun->sun_path));
+ sockun->sun_path[sizeof(sockun->sun_path) - 1] = '\0';
return ;
}
memset(&hint, 0, sizeof(hint));