summaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch
diff options
context:
space:
mode:
authorMatt Hoosier <matt.hoosier@garmin.com>2020-02-05 16:04:49 -0600
committerKhem Raj <raj.khem@gmail.com>2020-02-06 07:20:03 -0800
commita44430fe9115f58aa72f211cb114a2e1f63bf4c5 (patch)
tree8e7fe886e280dfe9e92a554b474fa32924ec85ef /meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch
parentfd2765bb16d6a895d3d6d4886add4b8b6a1baa20 (diff)
downloadmeta-openembedded-a44430fe9115f58aa72f211cb114a2e1f63bf4c5.tar.gz
mdns: improve numerous aspects of Posix backend
Apple's default implementation of the Posix backend for mDNSResponder has a number of weaknesses. Address several of them, most notably: * Improve interface tracking, preventing confusion to mdns's state machine. Prevents spurious removal/republication cycles whenever network interfaces are added or removed. * Support network interfaces whose indeces are great than 31. Indices grow past that range surprisingly quickly, especially with multi- homed, mobile, wifi, Bluetooth, VPN, VLANs, or other interfaces present. * Correctly handle edge cases during removal of a network interface. The fixes are kept as a patch series for clarity. Signed-off-by: Matt Hoosier <matt.hoosier@garmin.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch')
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch b/meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch
new file mode 100644
index 0000000000..362d69768e
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch
@@ -0,0 +1,45 @@
1From 38cff19781f81586926b02f0fd1cb36c040395e0 Mon Sep 17 00:00:00 2001
2From: Nate Karstens <nate.karstens@garmin.com>
3Date: Thu, 10 Aug 2017 08:21:53 -0500
4Subject: [PATCH 09/11] Fix possible NULL dereference
5
6Fixes a possible NULL dereference if memory for
7the PosixNetworkInterface could not be allocated.
8Other logic seems to prevent dereferencing this
9variable if NULL, but this instance seems to have
10been overlooked.
11
12Upstream-Status: Submitted [dts@apple.com]
13
14Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
15---
16 mDNSPosix/mDNSPosix.c | 11 +++++++----
17 1 file changed, 7 insertions(+), 4 deletions(-)
18
19diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
20index a8a57df..3243ed4 100644
21--- a/mDNSPosix/mDNSPosix.c
22+++ b/mDNSPosix/mDNSPosix.c
23@@ -951,12 +951,15 @@ mDNSlocal int SetupOneInterface(mDNS *const m, struct ifi_info *const ifi)
24
25 // If interface is a direct link, address record will be marked as kDNSRecordTypeKnownUnique
26 // and skip the probe phase of the probe/announce packet sequence.
27- intf->coreIntf.DirectLink = mDNSfalse;
28+ if (err == 0)
29+ {
30+ intf->coreIntf.DirectLink = mDNSfalse;
31 #ifdef DIRECTLINK_INTERFACE_NAME
32- if (strcmp(intfName, STRINGIFY(DIRECTLINK_INTERFACE_NAME)) == 0)
33- intf->coreIntf.DirectLink = mDNStrue;
34+ if (strcmp(intfName, STRINGIFY(DIRECTLINK_INTERFACE_NAME)) == 0)
35+ intf->coreIntf.DirectLink = mDNStrue;
36 #endif
37- intf->coreIntf.SupportsUnicastMDNSResponse = mDNStrue;
38+ intf->coreIntf.SupportsUnicastMDNSResponse = mDNStrue;
39+ }
40
41 // The interface is all ready to go, let's register it with the mDNS core.
42 if (err == 0)
43--
442.17.1
45