0001-Fix-NULL-pointer-crashes-from-175.patch 5.2 KB

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