1*4882a593SmuzhiyunFrom 9d31939e55280a733d930b15ac9e4dda4497680c Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Tommi Rantala <tommi.t.rantala@nokia.com> 3*4882a593SmuzhiyunDate: Mon, 8 Feb 2021 11:04:43 +0200 4*4882a593SmuzhiyunSubject: [PATCH] Fix NULL pointer crashes from #175 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunavahi-daemon is crashing when running "ping .local". 7*4882a593SmuzhiyunThe crash is due to failing assertion from NULL pointer. 8*4882a593SmuzhiyunAdd missing NULL pointer checks to fix it. 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunIntroduced in #175 - merge commit 8f75a045709a780c8cf92a6a21e9d35b593bdecd 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun[Retrieved from: 13*4882a593Smuzhiyunhttps://github.com/lathiat/avahi/commit/9d31939e55280a733d930b15ac9e4dda4497680c] 14*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 15*4882a593Smuzhiyun--- 16*4882a593Smuzhiyun avahi-core/browse-dns-server.c | 5 ++++- 17*4882a593Smuzhiyun avahi-core/browse-domain.c | 5 ++++- 18*4882a593Smuzhiyun avahi-core/browse-service-type.c | 3 +++ 19*4882a593Smuzhiyun avahi-core/browse-service.c | 3 +++ 20*4882a593Smuzhiyun avahi-core/browse.c | 3 +++ 21*4882a593Smuzhiyun avahi-core/resolve-address.c | 5 ++++- 22*4882a593Smuzhiyun avahi-core/resolve-host-name.c | 5 ++++- 23*4882a593Smuzhiyun avahi-core/resolve-service.c | 5 ++++- 24*4882a593Smuzhiyun 8 files changed, 29 insertions(+), 5 deletions(-) 25*4882a593Smuzhiyun 26*4882a593Smuzhiyundiff --git a/avahi-core/browse-dns-server.c b/avahi-core/browse-dns-server.c 27*4882a593Smuzhiyunindex 049752e9..c2d914fa 100644 28*4882a593Smuzhiyun--- a/avahi-core/browse-dns-server.c 29*4882a593Smuzhiyun+++ b/avahi-core/browse-dns-server.c 30*4882a593Smuzhiyun@@ -343,7 +343,10 @@ AvahiSDNSServerBrowser *avahi_s_dns_server_browser_new( 31*4882a593Smuzhiyun AvahiSDNSServerBrowser* b; 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun b = avahi_s_dns_server_browser_prepare(server, interface, protocol, domain, type, aprotocol, flags, callback, userdata); 34*4882a593Smuzhiyun+ if (!b) 35*4882a593Smuzhiyun+ return NULL; 36*4882a593Smuzhiyun+ 37*4882a593Smuzhiyun avahi_s_dns_server_browser_start(b); 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun return b; 40*4882a593Smuzhiyun-} 41*4882a593Smuzhiyun\ No newline at end of file 42*4882a593Smuzhiyun+} 43*4882a593Smuzhiyundiff --git a/avahi-core/browse-domain.c b/avahi-core/browse-domain.c 44*4882a593Smuzhiyunindex f145d56a..06fa70c0 100644 45*4882a593Smuzhiyun--- a/avahi-core/browse-domain.c 46*4882a593Smuzhiyun+++ b/avahi-core/browse-domain.c 47*4882a593Smuzhiyun@@ -253,7 +253,10 @@ AvahiSDomainBrowser *avahi_s_domain_browser_new( 48*4882a593Smuzhiyun AvahiSDomainBrowser *b; 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun b = avahi_s_domain_browser_prepare(server, interface, protocol, domain, type, flags, callback, userdata); 51*4882a593Smuzhiyun+ if (!b) 52*4882a593Smuzhiyun+ return NULL; 53*4882a593Smuzhiyun+ 54*4882a593Smuzhiyun avahi_s_domain_browser_start(b); 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun return b; 57*4882a593Smuzhiyun-} 58*4882a593Smuzhiyun\ No newline at end of file 59*4882a593Smuzhiyun+} 60*4882a593Smuzhiyundiff --git a/avahi-core/browse-service-type.c b/avahi-core/browse-service-type.c 61*4882a593Smuzhiyunindex fdd22dcd..b1fc7af8 100644 62*4882a593Smuzhiyun--- a/avahi-core/browse-service-type.c 63*4882a593Smuzhiyun+++ b/avahi-core/browse-service-type.c 64*4882a593Smuzhiyun@@ -171,6 +171,9 @@ AvahiSServiceTypeBrowser *avahi_s_service_type_browser_new( 65*4882a593Smuzhiyun AvahiSServiceTypeBrowser *b; 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun b = avahi_s_service_type_browser_prepare(server, interface, protocol, domain, flags, callback, userdata); 68*4882a593Smuzhiyun+ if (!b) 69*4882a593Smuzhiyun+ return NULL; 70*4882a593Smuzhiyun+ 71*4882a593Smuzhiyun avahi_s_service_type_browser_start(b); 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun return b; 74*4882a593Smuzhiyundiff --git a/avahi-core/browse-service.c b/avahi-core/browse-service.c 75*4882a593Smuzhiyunindex 5531360c..63e0275a 100644 76*4882a593Smuzhiyun--- a/avahi-core/browse-service.c 77*4882a593Smuzhiyun+++ b/avahi-core/browse-service.c 78*4882a593Smuzhiyun@@ -184,6 +184,9 @@ AvahiSServiceBrowser *avahi_s_service_browser_new( 79*4882a593Smuzhiyun AvahiSServiceBrowser *b; 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun b = avahi_s_service_browser_prepare(server, interface, protocol, service_type, domain, flags, callback, userdata); 82*4882a593Smuzhiyun+ if (!b) 83*4882a593Smuzhiyun+ return NULL; 84*4882a593Smuzhiyun+ 85*4882a593Smuzhiyun avahi_s_service_browser_start(b); 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun return b; 88*4882a593Smuzhiyundiff --git a/avahi-core/browse.c b/avahi-core/browse.c 89*4882a593Smuzhiyunindex 2941e579..e8a915e9 100644 90*4882a593Smuzhiyun--- a/avahi-core/browse.c 91*4882a593Smuzhiyun+++ b/avahi-core/browse.c 92*4882a593Smuzhiyun@@ -634,6 +634,9 @@ AvahiSRecordBrowser *avahi_s_record_browser_new( 93*4882a593Smuzhiyun AvahiSRecordBrowser *b; 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun b = avahi_s_record_browser_prepare(server, interface, protocol, key, flags, callback, userdata); 96*4882a593Smuzhiyun+ if (!b) 97*4882a593Smuzhiyun+ return NULL; 98*4882a593Smuzhiyun+ 99*4882a593Smuzhiyun avahi_s_record_browser_start_query(b); 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun return b; 102*4882a593Smuzhiyundiff --git a/avahi-core/resolve-address.c b/avahi-core/resolve-address.c 103*4882a593Smuzhiyunindex ac0b29b1..e61dd242 100644 104*4882a593Smuzhiyun--- a/avahi-core/resolve-address.c 105*4882a593Smuzhiyun+++ b/avahi-core/resolve-address.c 106*4882a593Smuzhiyun@@ -286,7 +286,10 @@ AvahiSAddressResolver *avahi_s_address_resolver_new( 107*4882a593Smuzhiyun AvahiSAddressResolver *b; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun b = avahi_s_address_resolver_prepare(server, interface, protocol, address, flags, callback, userdata); 110*4882a593Smuzhiyun+ if (!b) 111*4882a593Smuzhiyun+ return NULL; 112*4882a593Smuzhiyun+ 113*4882a593Smuzhiyun avahi_s_address_resolver_start(b); 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun return b; 116*4882a593Smuzhiyun-} 117*4882a593Smuzhiyun\ No newline at end of file 118*4882a593Smuzhiyun+} 119*4882a593Smuzhiyundiff --git a/avahi-core/resolve-host-name.c b/avahi-core/resolve-host-name.c 120*4882a593Smuzhiyunindex 808b0e72..4e8e5973 100644 121*4882a593Smuzhiyun--- a/avahi-core/resolve-host-name.c 122*4882a593Smuzhiyun+++ b/avahi-core/resolve-host-name.c 123*4882a593Smuzhiyun@@ -318,7 +318,10 @@ AvahiSHostNameResolver *avahi_s_host_name_resolver_new( 124*4882a593Smuzhiyun AvahiSHostNameResolver *b; 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun b = avahi_s_host_name_resolver_prepare(server, interface, protocol, host_name, aprotocol, flags, callback, userdata); 127*4882a593Smuzhiyun+ if (!b) 128*4882a593Smuzhiyun+ return NULL; 129*4882a593Smuzhiyun+ 130*4882a593Smuzhiyun avahi_s_host_name_resolver_start(b); 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun return b; 133*4882a593Smuzhiyun-} 134*4882a593Smuzhiyun\ No newline at end of file 135*4882a593Smuzhiyun+} 136*4882a593Smuzhiyundiff --git a/avahi-core/resolve-service.c b/avahi-core/resolve-service.c 137*4882a593Smuzhiyunindex 66bf3cae..43771763 100644 138*4882a593Smuzhiyun--- a/avahi-core/resolve-service.c 139*4882a593Smuzhiyun+++ b/avahi-core/resolve-service.c 140*4882a593Smuzhiyun@@ -519,7 +519,10 @@ AvahiSServiceResolver *avahi_s_service_resolver_new( 141*4882a593Smuzhiyun AvahiSServiceResolver *b; 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun b = avahi_s_service_resolver_prepare(server, interface, protocol, name, type, domain, aprotocol, flags, callback, userdata); 144*4882a593Smuzhiyun+ if (!b) 145*4882a593Smuzhiyun+ return NULL; 146*4882a593Smuzhiyun+ 147*4882a593Smuzhiyun avahi_s_service_resolver_start(b); 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun return b; 150*4882a593Smuzhiyun-} 151*4882a593Smuzhiyun\ No newline at end of file 152*4882a593Smuzhiyun+} 153