[libvirt] [PATCH 10/13] vboxDumpDisplay: check return of virDomainGraphicsListenSetAddress

Ján Tomko jtomko at redhat.com
Fri Feb 5 17:02:29 UTC 2016


Error out if the allocation failed.
---
 src/vbox/vbox_common.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c
index 43de343..1c2a432 100644
--- a/src/vbox/vbox_common.c
+++ b/src/vbox/vbox_common.c
@@ -3303,6 +3303,7 @@ vboxDumpDisplay(virDomainDefPtr def, vboxGlobalData *data, IMachine *machine)
     PRUnichar *keyTypeUtf16   = NULL;
     PRUnichar *valueTypeUtf16 = NULL;
     char      *valueTypeUtf8  = NULL;
+    char      *netAddressUtf8 = NULL;
     IVRDxServer *VRDxServer   = NULL;
     PRBool VRDxEnabled        = PR_FALSE;
     virDomainGraphicsDefPtr graphics = NULL;
@@ -3377,7 +3378,6 @@ vboxDumpDisplay(virDomainDefPtr def, vboxGlobalData *data, IMachine *machine)
 
     if (VRDxEnabled) {
         PRUnichar *netAddressUtf16   = NULL;
-        char      *netAddressUtf8    = NULL;
         PRBool allowMultiConnection  = PR_FALSE;
         PRBool reuseSingleConnection = PR_FALSE;
 
@@ -3391,13 +3391,14 @@ vboxDumpDisplay(virDomainDefPtr def, vboxGlobalData *data, IMachine *machine)
         gVBoxAPI.UIVRDxServer.GetNetAddress(data, VRDxServer, &netAddressUtf16);
         if (netAddressUtf16) {
             VBOX_UTF16_TO_UTF8(netAddressUtf16, &netAddressUtf8);
-            if (STRNEQ(netAddressUtf8, ""))
-                virDomainGraphicsListenSetAddress(graphics, 0,
-                                                  netAddressUtf8, -1, true);
             VBOX_UTF16_FREE(netAddressUtf16);
-            VBOX_UTF8_FREE(netAddressUtf8);
         }
 
+        if (STRNEQ_NULLABLE(netAddressUtf8, "") &&
+            virDomainGraphicsListenSetAddress(graphics, 0,
+                                              netAddressUtf8, -1, true) < 0)
+            goto cleanup;
+
         gVBoxAPI.UIVRDxServer.GetAllowMultiConnection(VRDxServer, &allowMultiConnection);
         if (allowMultiConnection)
             graphics->data.rdp.multiUser = true;
@@ -3418,6 +3419,7 @@ vboxDumpDisplay(virDomainDefPtr def, vboxGlobalData *data, IMachine *machine)
  cleanup:
     VBOX_RELEASE(VRDxServer);
     VBOX_UTF8_FREE(valueTypeUtf8);
+    VBOX_UTF8_FREE(netAddressUtf8);
     return ret;
 }
 
-- 
2.4.10




More information about the libvir-list mailing list