[prev in list] [next in list] [prev in thread] [next in thread] 

List:       libvir-list
Subject:    [libvirt] [PATCH 8/8] add missing error handling to virGetDomain
From:       Christophe Fergeau <teuf () gnome ! org>
Date:       2011-02-13 21:45:24
Message-ID: 1297633524-24147-8-git-send-email-teuf () gnome ! org
[Download RAW message or body]

When creating the virDomain::snapshots hash table, virGetDomain
wasn't checking if the creation was successful. This would then
lead to failures in the vir*DomainSnapshot functions. Better to
report this error early and make virGetDomain fail if the
snapshots hash couldn't be created.
---
 src/datatypes.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/datatypes.c b/src/datatypes.c
index 4f7373c..7cc37c1 100644
--- a/src/datatypes.c
+++ b/src/datatypes.c
@@ -359,6 +359,12 @@ virGetDomain(virConnectPtr conn, const char *name, const unsigned char *uuid) {
         ret->id = -1;
         memcpy(&(ret->uuid[0]), uuid, VIR_UUID_BUFLEN);
         ret->snapshots = virHashCreate(20);
+        if (ret->snapshots == NULL) {
+            virMutexUnlock(&conn->lock);
+            virLibConnError(VIR_ERR_INTERNAL_ERROR, "%s",
+                            _("failed to create domain snapshots hash"));
+            goto error;
+        }
 
         if (virHashAddEntry(conn->domains, uuidstr, ret) < 0) {
             virMutexUnlock(&conn->lock);
-- 
1.7.4

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic