From: Christophe Fergeau Date: Tue, 15 Feb 2011 03:05:38 +0000 (+0800) Subject: add missing error handling to virGetDomain X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=dad4a3f29a2d95660f637f1454284bd18d6b512b;p=libvirt.git 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 --- 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);