From dad4a3f29a2d95660f637f1454284bd18d6b512b Mon Sep 17 00:00:00 2001 From: Christophe Fergeau Date: Tue, 15 Feb 2011 11:05:38 +0800 Subject: [PATCH] add missing error handling to virGetDomain 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: report failure to make a hash table --- src/datatypes.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/datatypes.c b/src/datatypes.c index e26e332053..d870e5d873 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -375,6 +375,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);