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