From b34c66d255ae0ac833a85a6b1274b3216fab9e93 Mon Sep 17 00:00:00 2001 From: Michal Sekletar Date: Tue, 27 Aug 2024 15:07:02 +0200 Subject: [PATCH] avahi-0.7-27.1 Resolves: RHEL-5631 RHEL-43458 --- ...ble-timeout-cleanup-on-watch-cleanup.patch | 28 +++++++++++++++++++ ...-fix-memory-leak-in-wide-area-lookup.patch | 24 ++++++++++++++++ avahi.spec | 10 +++++-- 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 0001-Do-not-disable-timeout-cleanup-on-watch-cleanup.patch create mode 100644 0001-fix-memory-leak-in-wide-area-lookup.patch diff --git a/0001-Do-not-disable-timeout-cleanup-on-watch-cleanup.patch b/0001-Do-not-disable-timeout-cleanup-on-watch-cleanup.patch new file mode 100644 index 0000000..142892c --- /dev/null +++ b/0001-Do-not-disable-timeout-cleanup-on-watch-cleanup.patch @@ -0,0 +1,28 @@ +From bbf47e831143dc87c90811f404ccbae580930ff0 Mon Sep 17 00:00:00 2001 +From: Gustavo Noronha Silva +Date: Sun, 2 Jan 2022 22:29:04 -0300 +Subject: [PATCH] Do not disable timeout cleanup on watch cleanup + +This was causing timeouts to never be removed from the linked list that +tracks them, resulting in both memory and CPU usage to grow larger over +time. +--- + avahi-common/simple-watch.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/avahi-common/simple-watch.c b/avahi-common/simple-watch.c +index 08d8090..2a4a989 100644 +--- a/avahi-common/simple-watch.c ++++ b/avahi-common/simple-watch.c +@@ -238,7 +238,7 @@ static void cleanup_watches(AvahiSimplePoll *s, int all) { + destroy_watch(w); + } + +- s->timeout_req_cleanup = 0; ++ s->watch_req_cleanup = 0; + } + + static AvahiTimeout* timeout_new(const AvahiPoll *api, const struct timeval *tv, AvahiTimeoutCallback callback, void *userdata) { +-- +2.45.2 + diff --git a/0001-fix-memory-leak-in-wide-area-lookup.patch b/0001-fix-memory-leak-in-wide-area-lookup.patch new file mode 100644 index 0000000..9f754de --- /dev/null +++ b/0001-fix-memory-leak-in-wide-area-lookup.patch @@ -0,0 +1,24 @@ +From 93de55227583a149a375f529f3fafafae7c2c3bb Mon Sep 17 00:00:00 2001 +From: Wei Li +Date: Fri, 23 Dec 2022 17:02:53 +0800 +Subject: [PATCH] fix memory leak in wide area lookup + +--- + avahi-core/wide-area.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/avahi-core/wide-area.c b/avahi-core/wide-area.c +index d5e64e5..971f5e7 100644 +--- a/avahi-core/wide-area.c ++++ b/avahi-core/wide-area.c +@@ -564,6 +564,7 @@ static void socket_event(AVAHI_GCC_UNUSED AvahiWatch *w, int fd, AVAHI_GCC_UNUSE + if (p) { + handle_packet(e, p); + avahi_dns_packet_free(p); ++ avahi_cleanup_dead_entries(e->server); + } + } + +-- +2.45.2 + diff --git a/avahi.spec b/avahi.spec index ebcb76d..a64ba46 100644 --- a/avahi.spec +++ b/avahi.spec @@ -26,7 +26,7 @@ Name: avahi Version: 0.7 -Release: 27%{?dist} +Release: 27%{?dist}.1 Summary: Local network service discovery License: LGPLv2+ URL: http://avahi.org @@ -96,6 +96,8 @@ Patch0011: 0001-core-extract-host-name-using-avahi_unescape_label.patch Patch0012: 0001-core-return-errors-from-avahi_server_set_host_name-p.patch Patch0013: 0001-core-reject-overly-long-TXT-resource-records.patch Patch0014: 0001-Avoid-infinite-loop-in-avahi-daemon-by-handling-HUP-.patch +Patch0015: 0001-Do-not-disable-timeout-cleanup-on-watch-cleanup.patch +Patch0016: 0001-fix-memory-leak-in-wide-area-lookup.patch ## downstream patches Patch100: avahi-0.6.30-mono-libdir.patch @@ -510,7 +512,7 @@ exit 0 %ghost %{_sysconfdir}/avahi/etc/localtime %config(noreplace) %{_sysconfdir}/avahi/hosts %dir %{_sysconfdir}/avahi/services -%ghost %dir %{_localstatedir}/run/avahi-daemon +%ghost %attr(0755, avahi, avahi) %dir %{_localstatedir}/run/avahi-daemon %config(noreplace) %{_sysconfdir}/avahi/avahi-daemon.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/avahi-dbus.conf %{_sbindir}/avahi-daemon @@ -664,6 +666,10 @@ exit 0 %changelog +* Tue Aug 27 2024 Michal Sekletar - 0.7-27.1 +- fix file attributes for /run/avahi-daemon (RHEL-5631) +- fix two memory leaks (RHEL-43458) + * Thu Nov 09 2023 Michal Sekletar - 0.7-27 - Fix CVE-2021-3468 (RHEL-9542)