On 11/28/2012 02:38 PM, Peter Krempa wrote:
On 11/22/12 16:24, Martin Kletzander wrote:
[...]
> + /* We can query this info for all the graphics types
since we'll
> + * get nothing for the unsupported ones (just rdp for now).
> + * Also the parameter '--include-password' was already taken
> + * care of when getting the XML */
> +
> + /* Create our XPATH lookup for the password */
> + if (virAsprintf(&xpath, xpath_fmt, scheme[iter], "passwd")
< 0)
> + goto no_memory;
> +
> + /* Attempt to get the password */
> + passwd = virXPathString(xpath, ctxt);
You forgot to VIR_FREE(xpath) here leaking one of the query strings.
> +
> + if (STREQ(scheme[iter], "vnc"))
> + /* VNC protocol handlers take their port number as
> + * 'port' - 5900 */
> port -= 5900;
> - } else if (STREQ(scheme[iter], "spice")) {
> - /* Create our XPATH lookup for the SPICE TLS Port */
> - virAsprintf(&xpath,
[...]
Nice cleanup. ACK with the memleak fixed.
Peter
I fixed the leak and added curly braces around "multi-line" block after
that. Long story short, I pushed it with the following squashed.
Martin
---
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 1e8ccc9..1723413 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -7068,11 +7068,13 @@ cmdDomDisplay(vshControl *ctl, const vshCmd *cmd)
/* Attempt to get the password */
passwd = virXPathString(xpath, ctxt);
+ VIR_FREE(xpath);
- if (STREQ(scheme[iter], "vnc"))
+ if (STREQ(scheme[iter], "vnc")) {
/* VNC protocol handlers take their port number as
* 'port' - 5900 */
port -= 5900;
+ }
/* Create our XPATH lookup for TLS Port (automatically skipped
* for unsupported schemes */