summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0001-Handle-interface-without-ifa_addr.patch
blob: daee318ae4a39b286470fdae04988b8e30423a7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
From 1cc54320306e07c1fc0eed98e7fbcbb07a2f3b28 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Fri, 23 Jun 2023 10:10:00 +0200
Subject: [PATCH] Handle interface without `ifa_addr`

It seems that certain interface types may have `ifa_addr` set to null.
Handle this case gracefully.

Upstream-Status: Submitted [https://github.com/apple-oss-distributions/mDNSResponder/pull/2/commits/11b410d4d683c90e693c40315997bb3e8ec90e9a]

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
 mDNSPosix/mDNSPosix.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
index d7f31cc4d5cf..f10301253f58 100644
--- a/mDNSPosix/mDNSPosix.c
+++ b/mDNSPosix/mDNSPosix.c
@@ -1895,6 +1895,7 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
 	    continue;
 
         if ((ifa_loop4 == NULL) &&
+            ((*ifi)->ifa_addr != NULL) &&
             ((*ifi)->ifa_addr->sa_family == AF_INET) &&
             ((*ifi)->ifa_flags & IFF_UP) &&
             ((*ifi)->ifa_flags & IFF_LOOPBACK))
@@ -1903,7 +1904,8 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
             continue;
         }
 
-        if (     (((*ifi)->ifa_addr->sa_family == AF_INET)
+        if (     ((*ifi)->ifa_addr != NULL) &&
+                 (((*ifi)->ifa_addr->sa_family == AF_INET)
 #if HAVE_IPV6
                   || ((*ifi)->ifa_addr->sa_family == AF_INET6)
 #endif