From 2450d58464dcbbf6e29ddf7c286bce78fa4ec6d3 Mon Sep 17 00:00:00 2001 From: Thorsten Otto Date: Sat, 16 Mar 2024 14:55:45 +0100 Subject: [PATCH] broadcast addr can be NULL --- common/wspudp.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) 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); + } } }