[libvirt] [PATCH v2] virsh: Rewrite cmdDomDisplay
Martin Kletzander
mkletzan at redhat.com
Wed Nov 28 15:29:43 UTC 2012
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 */
More information about the libvir-list
mailing list