Rebase to 10.5.0 release
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
9ae002fc72
commit
0862e2b778
@ -1,41 +0,0 @@
|
||||
From 3499354e12a1c1832bf4030693a64e03ceb79d05 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||
Date: Wed, 5 Jun 2024 11:16:21 +0100
|
||||
Subject: [PATCH] interface: fix udev reference leak with invalid flags
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The udevInterfaceGetXMLDesc method takes a reference on the udev
|
||||
driver as its first action. If the virCheckFlags() condition
|
||||
fails, however, this reference is never released.
|
||||
|
||||
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
---
|
||||
src/interface/interface_backend_udev.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/interface/interface_backend_udev.c b/src/interface/interface_backend_udev.c
|
||||
index fdf11a8318..e1a50389c9 100644
|
||||
--- a/src/interface/interface_backend_udev.c
|
||||
+++ b/src/interface/interface_backend_udev.c
|
||||
@@ -1027,12 +1027,14 @@ static char *
|
||||
udevInterfaceGetXMLDesc(virInterfacePtr ifinfo,
|
||||
unsigned int flags)
|
||||
{
|
||||
- struct udev *udev = udev_ref(driver->udev);
|
||||
+ struct udev *udev = NULL;
|
||||
g_autoptr(virInterfaceDef) ifacedef = NULL;
|
||||
char *xmlstr = NULL;
|
||||
|
||||
virCheckFlags(VIR_INTERFACE_XML_INACTIVE, NULL);
|
||||
|
||||
+ udev = udev_ref(driver->udev);
|
||||
+
|
||||
/* Recursively build up the interface XML based on the requested
|
||||
* interface name
|
||||
*/
|
||||
--
|
||||
2.45.1
|
||||
|
@ -1,49 +0,0 @@
|
||||
From 98f1cf88fa7e0f992d93f376418fbfb3996a9690 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||
Date: Fri, 17 May 2024 14:55:24 +0100
|
||||
Subject: [PATCH] rpc: avoid leak of GSource in use for interrupting main loop
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
We never release the reference on the GSource created for
|
||||
interrupting the main loop, nor do we remove it from the
|
||||
main context if our thread is woken up prior to the wakeup
|
||||
callback firing.
|
||||
|
||||
This can result in a leak of GSource objects, along with an
|
||||
ever growing list of GSources attached to the main context,
|
||||
which will gradually slow down execution of the loop, as
|
||||
several operations are O(N) for the number of attached GSource
|
||||
objects.
|
||||
|
||||
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
---
|
||||
src/rpc/virnetclient.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c
|
||||
index 147b0d661a..6d424eb599 100644
|
||||
--- a/src/rpc/virnetclient.c
|
||||
+++ b/src/rpc/virnetclient.c
|
||||
@@ -1946,7 +1946,7 @@ static int virNetClientIO(virNetClient *client,
|
||||
/* Check to see if another thread is dispatching */
|
||||
if (client->haveTheBuck) {
|
||||
/* Force other thread to wakeup from poll */
|
||||
- GSource *wakeup = g_idle_source_new();
|
||||
+ g_autoptr(GSource) wakeup = g_idle_source_new();
|
||||
g_source_set_callback(wakeup, virNetClientIOWakeup, client->eventLoop, NULL);
|
||||
g_source_attach(wakeup, client->eventCtx);
|
||||
|
||||
@@ -1968,6 +1968,7 @@ static int virNetClientIO(virNetClient *client,
|
||||
return -1;
|
||||
}
|
||||
|
||||
+ g_source_destroy(wakeup);
|
||||
VIR_DEBUG("Woken up from sleep head=%p call=%p",
|
||||
client->waitDispatch, thiscall);
|
||||
/* Three reasons we can be woken up
|
||||
--
|
||||
2.45.1
|
||||
|
26
libvirt.spec
26
libvirt.spec
@ -288,8 +288,8 @@
|
||||
|
||||
Summary: Library providing a simple virtualization API
|
||||
Name: libvirt
|
||||
Version: 10.4.0
|
||||
Release: 2%{?dist}
|
||||
Version: 10.5.0
|
||||
Release: 1%{?dist}
|
||||
License: GPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND OFL-1.1
|
||||
URL: https://libvirt.org/
|
||||
|
||||
@ -297,8 +297,6 @@ URL: https://libvirt.org/
|
||||
%define mainturl stable_updates/
|
||||
%endif
|
||||
Source: https://download.libvirt.org/%{?mainturl}libvirt-%{version}.tar.xz
|
||||
Patch2: 0001-rpc-avoid-leak-of-GSource-in-use-for-interrupting-ma.patch
|
||||
Patch3: 0001-interface-fix-udev-reference-leak-with-invalid-flags.patch
|
||||
|
||||
Requires: libvirt-daemon = %{version}-%{release}
|
||||
Requires: libvirt-daemon-config-network = %{version}-%{release}
|
||||
@ -1034,8 +1032,6 @@ capabilities of VirtualBox
|
||||
%package client
|
||||
Summary: Client side utilities of the libvirt library
|
||||
Requires: libvirt-libs = %{version}-%{release}
|
||||
# Needed by virt-pki-validate script.
|
||||
Requires: gnutls-utils
|
||||
|
||||
# Ensure smooth upgrades
|
||||
Obsoletes: libvirt-bash-completion < 7.3.0
|
||||
@ -1057,8 +1053,6 @@ with some QEMU specific features of libvirt.
|
||||
|
||||
%package libs
|
||||
Summary: Client side libraries
|
||||
# So remote clients can access libvirt over SSH tunnel
|
||||
Requires: cyrus-sasl
|
||||
# Needed by default sasl.conf - no onerous extra deps, since
|
||||
# 100's of other things on a system already pull in krb5-libs
|
||||
Requires: cyrus-sasl-gssapi
|
||||
@ -1331,6 +1325,8 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec)
|
||||
%meson \
|
||||
-Drunstatedir=%{_rundir} \
|
||||
-Dinitconfdir=%{_sysconfdir}/sysconfig \
|
||||
-Dunitdir=%{_unitdir} \
|
||||
-Dsysusersdir=%{_sysusersdir} \
|
||||
%{?arg_qemu} \
|
||||
%{?arg_openvz} \
|
||||
%{?arg_lxc} \
|
||||
@ -1487,8 +1483,9 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec)
|
||||
-Dtests=disabled \
|
||||
-Dudev=disabled \
|
||||
-Dwireshark_dissector=disabled \
|
||||
-Dyajl=disabled
|
||||
%mingw_ninja
|
||||
-Dyajl=disabled \
|
||||
%{?enable_werror}
|
||||
%mingw_ninja
|
||||
%endif
|
||||
|
||||
%install
|
||||
@ -1594,7 +1591,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
|
||||
%if %{with_native}
|
||||
# Building on slow archs, like emulated s390x in Fedora copr, requires
|
||||
# raising the test timeout
|
||||
VIR_TEST_DEBUG=1
|
||||
export VIR_TEST_DEBUG=1
|
||||
%meson_test --no-suite syntax-check --timeout-multiplier 10
|
||||
%endif
|
||||
|
||||
@ -2515,7 +2512,7 @@ exit 0
|
||||
%{mingw32_bindir}/virt-admin.exe
|
||||
%{mingw32_bindir}/virt-xml-validate
|
||||
%{mingw32_bindir}/virt-pki-query-dn.exe
|
||||
%{mingw32_bindir}/virt-pki-validate
|
||||
%{mingw32_bindir}/virt-pki-validate.exe
|
||||
%{mingw32_bindir}/libvirt-lxc-0.dll
|
||||
%{mingw32_bindir}/libvirt-qemu-0.dll
|
||||
%{mingw32_bindir}/libvirt-admin-0.dll
|
||||
@ -2574,7 +2571,7 @@ exit 0
|
||||
%{mingw64_bindir}/virt-admin.exe
|
||||
%{mingw64_bindir}/virt-xml-validate
|
||||
%{mingw64_bindir}/virt-pki-query-dn.exe
|
||||
%{mingw64_bindir}/virt-pki-validate
|
||||
%{mingw64_bindir}/virt-pki-validate.exe
|
||||
%{mingw64_bindir}/libvirt-lxc-0.dll
|
||||
%{mingw64_bindir}/libvirt-qemu-0.dll
|
||||
%{mingw64_bindir}/libvirt-admin-0.dll
|
||||
@ -2624,6 +2621,9 @@ exit 0
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Jul 4 2024 Daniel P. Berrangé <berrange@redhat.com> - 10.5.0-1
|
||||
- Rebase to 10.5.0 release
|
||||
|
||||
* Wed Jun 5 2024 Daniel P. Berrangé <berrange@redhat.com> - 10.4.0-2
|
||||
- Fix leak of GSource handle
|
||||
- Fix leak of udev reference (rhbz #2266017)
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (libvirt-10.4.0.tar.xz) = 711be39f3fb831a5073b25a5b02410676147114f3dcf85b24c8505b611a81bf64cf3b95f66908e0dc3a2f3e66e5fc31b2d95db610ea3f1b747a9fd1f52b1ffa7
|
||||
SHA512 (libvirt-10.5.0.tar.xz) = e4976849cff7bdae0b7fda0644490f0ca743efc11c35a2fae45bb0f6f467b85644c1d04d1f3d1b10affdc6d9b8dcc0a3c255e527e0bdd73cdd4d1c81d5c418e7
|
||||
|
Loading…
Reference in New Issue
Block a user