On Thu, Jul 17, 2025 at 04:49:21PM +0300, Elizaveta Tereshkina wrote:
Add g_clear_pointer() to networkAddFirewallRules()
after using virSetError() to free errInitV4 and errInitV6
to avoid memory leaks.
There is no memory leak. These are global variables that are intended
to remain allocated for the whole lifetime of the process.
Fixes: ef760a4133 (Revert "network: support setting firewalld zone for bridge device
of open networks")
Signed-off-by: Elizaveta Tereshkina <etereshkina(a)astralinux.ru>
---
src/network/bridge_driver_linux.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/network/bridge_driver_linux.c b/src/network/bridge_driver_linux.c
index 86f6a5915f..93d4d2c8ee 100644
--- a/src/network/bridge_driver_linux.c
+++ b/src/network/bridge_driver_linux.c
@@ -413,6 +413,7 @@ networkAddFirewallRules(virNetworkDef *def,
(virNetworkDefGetIPByIndex(def, AF_INET, 0) ||
virNetworkDefGetRouteByIndex(def, AF_INET, 0))) {
virSetError(errInitV4);
+ g_clear_pointer(&errInitV4, virFreeError);
return -1;
}
@@ -421,6 +422,7 @@ networkAddFirewallRules(virNetworkDef *def,
virNetworkDefGetRouteByIndex(def, AF_INET6, 0) ||
def->ipv6nogw)) {
virSetError(errInitV6);
+ g_clear_pointer(&errInitV6, virFreeError);
return -1;
}
No, this breaks the code. networkAddFirewallRules can be called many
times and freeing errInitV4/6 will break this.
With regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|