The variable holds formatted suffix to each line printed out
(address type, address and prefix). However, the variable is
never freed. At the same time, honour fact, that data held in
the variable is not constant.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
tools/virsh-domain-monitor.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
index 0717076..0eb1b62 100644
--- a/tools/virsh-domain-monitor.c
+++ b/tools/virsh-domain-monitor.c
@@ -2269,7 +2269,7 @@ cmdDomIfAddr(vshControl *ctl, const vshCmd *cmd)
for (i = 0; i < ifaces_count; i++) {
virDomainInterfacePtr iface = ifaces[i];
- const char *ip_addr_str = NULL;
+ char *ip_addr_str = NULL;
const char *type = NULL;
if (interface && STRNEQ(interface, iface->name))
@@ -2308,7 +2308,7 @@ cmdDomIfAddr(vshControl *ctl, const vshCmd *cmd)
ip_addr_str = virBufferContentAndReset(&buf);
if (!ip_addr_str)
- ip_addr_str = "";
+ ip_addr_str = vshStrdup(ctl, "");
/* Don't repeat interface name */
if (full || !j)
@@ -2320,6 +2320,7 @@ cmdDomIfAddr(vshControl *ctl, const vshCmd *cmd)
"-", "-", ip_addr_str);
virBufferFreeAndReset(&buf);
+ VIR_FREE(ip_addr_str);
}
}
--
2.0.5