summaryrefslogtreecommitdiffstats
path: root/meta/recipes-connectivity/avahi/files
diff options
context:
space:
mode:
authorRoss Burton <ross@burtonini.com>2021-07-19 11:02:32 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-07-20 08:51:06 +0100
commit3714bfb060ea57de4c57d510a4b6841b694066bd (patch)
treee9a2ed9874c72e86fefd9e4488004ad249e6705e /meta/recipes-connectivity/avahi/files
parent74cf2d75702611ba6fbb2728b6db3a67064397b5 (diff)
downloadpoky-3714bfb060ea57de4c57d510a4b6841b694066bd.tar.gz
avahi: fix CVE-2021-36217, crash on pinging '.local'
(From OE-Core rev: 638beadad098e9ee4e743be8f59f5a7f11373aff) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-connectivity/avahi/files')
-rw-r--r--meta/recipes-connectivity/avahi/files/local-ping.patch152
1 files changed, 152 insertions, 0 deletions
diff --git a/meta/recipes-connectivity/avahi/files/local-ping.patch b/meta/recipes-connectivity/avahi/files/local-ping.patch
new file mode 100644
index 0000000000..94116ad1f3
--- /dev/null
+++ b/meta/recipes-connectivity/avahi/files/local-ping.patch
@@ -0,0 +1,152 @@
1CVE: CVE-2021-36217
2Upstream-Status: Backport
3Signed-off-by: Ross Burton <ross.burton@arm.com>
4
5From 9d31939e55280a733d930b15ac9e4dda4497680c Mon Sep 17 00:00:00 2001
6From: Tommi Rantala <tommi.t.rantala@nokia.com>
7Date: Mon, 8 Feb 2021 11:04:43 +0200
8Subject: [PATCH] Fix NULL pointer crashes from #175
9
10avahi-daemon is crashing when running "ping .local".
11The crash is due to failing assertion from NULL pointer.
12Add missing NULL pointer checks to fix it.
13
14Introduced in #175 - merge commit 8f75a045709a780c8cf92a6a21e9d35b593bdecd
15---
16 avahi-core/browse-dns-server.c | 5 ++++-
17 avahi-core/browse-domain.c | 5 ++++-
18 avahi-core/browse-service-type.c | 3 +++
19 avahi-core/browse-service.c | 3 +++
20 avahi-core/browse.c | 3 +++
21 avahi-core/resolve-address.c | 5 ++++-
22 avahi-core/resolve-host-name.c | 5 ++++-
23 avahi-core/resolve-service.c | 5 ++++-
24 8 files changed, 29 insertions(+), 5 deletions(-)
25
26diff --git a/avahi-core/browse-dns-server.c b/avahi-core/browse-dns-server.c
27index 049752e9..c2d914fa 100644
28--- a/avahi-core/browse-dns-server.c
29+++ b/avahi-core/browse-dns-server.c
30@@ -343,7 +343,10 @@ AvahiSDNSServerBrowser *avahi_s_dns_server_browser_new(
31 AvahiSDNSServerBrowser* b;
32
33 b = avahi_s_dns_server_browser_prepare(server, interface, protocol, domain, type, aprotocol, flags, callback, userdata);
34+ if (!b)
35+ return NULL;
36+
37 avahi_s_dns_server_browser_start(b);
38
39 return b;
40-}
41\ No newline at end of file
42+}
43diff --git a/avahi-core/browse-domain.c b/avahi-core/browse-domain.c
44index f145d56a..06fa70c0 100644
45--- a/avahi-core/browse-domain.c
46+++ b/avahi-core/browse-domain.c
47@@ -253,7 +253,10 @@ AvahiSDomainBrowser *avahi_s_domain_browser_new(
48 AvahiSDomainBrowser *b;
49
50 b = avahi_s_domain_browser_prepare(server, interface, protocol, domain, type, flags, callback, userdata);
51+ if (!b)
52+ return NULL;
53+
54 avahi_s_domain_browser_start(b);
55
56 return b;
57-}
58\ No newline at end of file
59+}
60diff --git a/avahi-core/browse-service-type.c b/avahi-core/browse-service-type.c
61index fdd22dcd..b1fc7af8 100644
62--- a/avahi-core/browse-service-type.c
63+++ b/avahi-core/browse-service-type.c
64@@ -171,6 +171,9 @@ AvahiSServiceTypeBrowser *avahi_s_service_type_browser_new(
65 AvahiSServiceTypeBrowser *b;
66
67 b = avahi_s_service_type_browser_prepare(server, interface, protocol, domain, flags, callback, userdata);
68+ if (!b)
69+ return NULL;
70+
71 avahi_s_service_type_browser_start(b);
72
73 return b;
74diff --git a/avahi-core/browse-service.c b/avahi-core/browse-service.c
75index 5531360c..63e0275a 100644
76--- a/avahi-core/browse-service.c
77+++ b/avahi-core/browse-service.c
78@@ -184,6 +184,9 @@ AvahiSServiceBrowser *avahi_s_service_browser_new(
79 AvahiSServiceBrowser *b;
80
81 b = avahi_s_service_browser_prepare(server, interface, protocol, service_type, domain, flags, callback, userdata);
82+ if (!b)
83+ return NULL;
84+
85 avahi_s_service_browser_start(b);
86
87 return b;
88diff --git a/avahi-core/browse.c b/avahi-core/browse.c
89index 2941e579..e8a915e9 100644
90--- a/avahi-core/browse.c
91+++ b/avahi-core/browse.c
92@@ -634,6 +634,9 @@ AvahiSRecordBrowser *avahi_s_record_browser_new(
93 AvahiSRecordBrowser *b;
94
95 b = avahi_s_record_browser_prepare(server, interface, protocol, key, flags, callback, userdata);
96+ if (!b)
97+ return NULL;
98+
99 avahi_s_record_browser_start_query(b);
100
101 return b;
102diff --git a/avahi-core/resolve-address.c b/avahi-core/resolve-address.c
103index ac0b29b1..e61dd242 100644
104--- a/avahi-core/resolve-address.c
105+++ b/avahi-core/resolve-address.c
106@@ -286,7 +286,10 @@ AvahiSAddressResolver *avahi_s_address_resolver_new(
107 AvahiSAddressResolver *b;
108
109 b = avahi_s_address_resolver_prepare(server, interface, protocol, address, flags, callback, userdata);
110+ if (!b)
111+ return NULL;
112+
113 avahi_s_address_resolver_start(b);
114
115 return b;
116-}
117\ No newline at end of file
118+}
119diff --git a/avahi-core/resolve-host-name.c b/avahi-core/resolve-host-name.c
120index 808b0e72..4e8e5973 100644
121--- a/avahi-core/resolve-host-name.c
122+++ b/avahi-core/resolve-host-name.c
123@@ -318,7 +318,10 @@ AvahiSHostNameResolver *avahi_s_host_name_resolver_new(
124 AvahiSHostNameResolver *b;
125
126 b = avahi_s_host_name_resolver_prepare(server, interface, protocol, host_name, aprotocol, flags, callback, userdata);
127+ if (!b)
128+ return NULL;
129+
130 avahi_s_host_name_resolver_start(b);
131
132 return b;
133-}
134\ No newline at end of file
135+}
136diff --git a/avahi-core/resolve-service.c b/avahi-core/resolve-service.c
137index 66bf3cae..43771763 100644
138--- a/avahi-core/resolve-service.c
139+++ b/avahi-core/resolve-service.c
140@@ -519,7 +519,10 @@ AvahiSServiceResolver *avahi_s_service_resolver_new(
141 AvahiSServiceResolver *b;
142
143 b = avahi_s_service_resolver_prepare(server, interface, protocol, name, type, domain, aprotocol, flags, callback, userdata);
144+ if (!b)
145+ return NULL;
146+
147 avahi_s_service_resolver_start(b);
148
149 return b;
150-}
151\ No newline at end of file
152+}