diff --git a/common/wspudp.cpp b/common/wspudp.cpp index 1f0c8d82..e53a3bd9 100644 --- a/common/wspudp.cpp +++ b/common/wspudp.cpp @@ -266,11 +266,15 @@ bool UDPInterfaceClass::Open_Socket(SOCKET) *((uint32_t*)a) = tmp_addr->s_addr; LocalAddresses.Add(a); - tmp_addr = &((struct sockaddr_in*)ifa->ifa_broadaddr)->sin_addr; - inet_ntop(AF_INET, tmp_addr, buf, INET_ADDRSTRLEN); - sprintf(temp, "RA95: Using broadcast address of: %s\n", buf); - fprintf(stderr, temp); - Set_Broadcast_Address(buf); + if ((struct sockaddr_in*)ifa->ifa_broadaddr == 0) { + fprintf(stderr, "RA95: No broadcast address\n"); + } else { + tmp_addr = &((struct sockaddr_in*)ifa->ifa_broadaddr)->sin_addr; + inet_ntop(AF_INET, tmp_addr, buf, INET_ADDRSTRLEN); + sprintf(temp, "RA95: Using broadcast address of: %s\n", buf); + fprintf(stderr, temp); + Set_Broadcast_Address(buf); + } } }