[libvirt] [PATCH 8/8] add missing error handling to virGetDomain

Daniel Veillard veillard at redhat.com
Tue Feb 15 03:07:50 UTC 2011


On Sun, Feb 13, 2011 at 10:45:24PM +0100, Christophe Fergeau wrote:
> 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);

  ACK, and pushed, taht one should go in for 0.8.8 too.
The others which are more about refactoring and cleanups should wait a
bit until after the release,

  thanks !

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list