1*4a64e381SAndroid Build Coastguard WorkerFrom e501d58e9ec6cb6e19a682d425fa638069585fbc Mon Sep 17 00:00:00 2001 2*4a64e381SAndroid Build Coastguard WorkerMessage-ID: <e501d58e9ec6cb6e19a682d425fa638069585fbc.1687508149.git.stefan@agner.ch> 3*4a64e381SAndroid Build Coastguard WorkerIn-Reply-To: <e136dcdcdd93ef32ada981e89c195905eb809eea.1687508149.git.stefan@agner.ch> 4*4a64e381SAndroid Build Coastguard WorkerReferences: <e136dcdcdd93ef32ada981e89c195905eb809eea.1687508149.git.stefan@agner.ch> 5*4a64e381SAndroid Build Coastguard WorkerFrom: Stefan Agner <[email protected]> 6*4a64e381SAndroid Build Coastguard WorkerDate: Fri, 23 Jun 2023 10:10:00 +0200 7*4a64e381SAndroid Build Coastguard WorkerSubject: [PATCH] Handle interface without `ifa_addr` 8*4a64e381SAndroid Build Coastguard Worker 9*4a64e381SAndroid Build Coastguard WorkerIt seems that certain interface types may have `ifa_addr` set to null. 10*4a64e381SAndroid Build Coastguard WorkerHandle this case gracefully. 11*4a64e381SAndroid Build Coastguard Worker 12*4a64e381SAndroid Build Coastguard WorkerSigned-off-by: Stefan Agner <[email protected]> 13*4a64e381SAndroid Build Coastguard Worker--- 14*4a64e381SAndroid Build Coastguard Worker mDNSPosix/mDNSPosix.c | 4 +++- 15*4a64e381SAndroid Build Coastguard Worker 1 file changed, 3 insertions(+), 1 deletion(-) 16*4a64e381SAndroid Build Coastguard Worker 17*4a64e381SAndroid Build Coastguard Workerdiff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c 18*4a64e381SAndroid Build Coastguard Workerindex 89e108f..2056871 100644 19*4a64e381SAndroid Build Coastguard Worker--- a/mDNSPosix/mDNSPosix.c 20*4a64e381SAndroid Build Coastguard Worker+++ b/mDNSPosix/mDNSPosix.c 21*4a64e381SAndroid Build Coastguard Worker@@ -1895,6 +1895,7 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context) 22*4a64e381SAndroid Build Coastguard Worker continue; 23*4a64e381SAndroid Build Coastguard Worker 24*4a64e381SAndroid Build Coastguard Worker if ((ifa_loop4 == NULL) && 25*4a64e381SAndroid Build Coastguard Worker+ ((*ifi)->ifa_addr != NULL) && 26*4a64e381SAndroid Build Coastguard Worker ((*ifi)->ifa_addr->sa_family == AF_INET) && 27*4a64e381SAndroid Build Coastguard Worker ((*ifi)->ifa_flags & IFF_UP) && 28*4a64e381SAndroid Build Coastguard Worker ((*ifi)->ifa_flags & IFF_LOOPBACK)) 29*4a64e381SAndroid Build Coastguard Worker@@ -1903,7 +1904,8 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context) 30*4a64e381SAndroid Build Coastguard Worker continue; 31*4a64e381SAndroid Build Coastguard Worker } 32*4a64e381SAndroid Build Coastguard Worker 33*4a64e381SAndroid Build Coastguard Worker- if ( (((*ifi)->ifa_addr->sa_family == AF_INET) 34*4a64e381SAndroid Build Coastguard Worker+ if ( ((*ifi)->ifa_addr != NULL) && 35*4a64e381SAndroid Build Coastguard Worker+ (((*ifi)->ifa_addr->sa_family == AF_INET) 36*4a64e381SAndroid Build Coastguard Worker #if HAVE_IPV6 37*4a64e381SAndroid Build Coastguard Worker || ((*ifi)->ifa_addr->sa_family == AF_INET6) 38*4a64e381SAndroid Build Coastguard Worker #endif 39*4a64e381SAndroid Build Coastguard Worker-- 40*4a64e381SAndroid Build Coastguard Worker2.41.0 41*4a64e381SAndroid Build Coastguard Worker 42