From 8340ce57b4340d107bc9362553431e8c7a10ce2b Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Mon, 23 Aug 2021 12:47:07 +0200 Subject: [PATCH] virpci: Clarify lifetime of temporary object The virPCIDeviceIsBehindSwitchLackingACS() function checks whether given PCI device is not behind a switch that lacks ACS. It does so by starting at given device and traversing up, one parent at time towards the root. The parent device is obtained via virPCIDeviceGetParent() which allocates new virPCIDevice structure. For freeing the structure we use g_autoptr() and a temporary variable @tmp. However, Clang fails to understand our clever algorithm and complains that the variable is set but never used. This is obviously a false positive, but using a small trick we can shut Clang up. Signed-off-by: Michal Privoznik Reviewed-by: Peter Krempa --- src/util/virpci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util/virpci.c b/src/util/virpci.c index 915a4903ca..f307580a53 100644 --- a/src/util/virpci.c +++ b/src/util/virpci.c @@ -2150,8 +2150,8 @@ virPCIDeviceIsBehindSwitchLackingACS(virPCIDevice *dev) return 1; } - tmp = parent; - ret = virPCIDeviceGetParent(parent, &parent); + tmp = g_steal_pointer(&parent); + ret = virPCIDeviceGetParent(tmp, &parent); if (ret < 0) return -1; } while (parent);