Re: [PATCH 3/5] Utilize virDomainDiskAuth for domain disk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/27/2014 05:11 PM, John Ferlan wrote:
> Replace the inline "auth" struct in virStorageSource with a pointer
> to a virStorageAuthDefPtr and utilize between the domain_conf, qemu_conf,
> and qemu_command sources for finding the auth data for a domain disk
> 
> Signed-off-by: John Ferlan <jferlan@xxxxxxxxxx>
> ---
>  src/conf/domain_conf.c    | 106 +++++++---------------------------------------
>  src/libvirt_private.syms  |   1 -
>  src/qemu/qemu_command.c   |  72 +++++++++++++++++++++----------
>  src/qemu/qemu_conf.c      |  26 +++++++-----
>  src/util/virstoragefile.c |  14 +-----
>  src/util/virstoragefile.h |  10 +----
>  tests/qemuargv2xmltest.c  |   1 -
>  7 files changed, 81 insertions(+), 149 deletions(-)
> 

> @@ -2650,6 +2663,7 @@ static int qemuParseRBDString(virDomainDiskDefPtr disk)
>  
>   error:
>      VIR_FREE(options);
> +    virStorageAuthDefFree(disk->src->auth);

This causes a double free - both callers free disk on failure.

>      return -1;
>  }
>  

> @@ -2738,6 +2767,7 @@ qemuParseDriveURIString(virDomainDiskDefPtr def, virURIPtr uri,
>   error:
>      virStorageNetHostDefClear(def->src->hosts);
>      VIR_FREE(def->src->hosts);

> +    VIR_FREE(def->src->auth);

This should be freed by the callers too. (by StorageAuthDefFree)

>      goto cleanup;
>  }
>  

> @@ -1802,7 +1790,7 @@ virStorageSourceClear(virStorageSourcePtr def)
>      VIR_FREE(def->timestamps);
>  
>      virStorageNetHostDefFree(def->nhosts, def->hosts);
> -    virStorageSourceAuthClear(def);
> +    virStorageAuthDefFree(def->auth);

I don't like *Clear functions leaving pointers to freed memory behind, but
this one is only called right before freeing the StorageSource and it already
leaves def->hosts.

>  
>      virStorageSourceBackingStoreClear(def);
>  }

Jan


Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]