From: Daniel P. Berrangé Date: Wed, 5 Jun 2024 10:16:21 +0000 (+0100) Subject: interface: fix udev reference leak with invalid flags X-Git-Tag: v10.5.0-rc1~117 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3499354e12a1c1832bf4030693a64e03ceb79d05;p=thirdparty%2Flibvirt.git interface: fix udev reference leak with invalid flags 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 Signed-off-by: Daniel P. Berrangé --- 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 */