[libvirt] [PATCH 3/5] Utilize virDomainDiskAuth for domain disk
Ján Tomko
jtomko at redhat.com
Wed Jul 2 13:10:35 UTC 2014
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 at redhat.com>
> ---
> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140702/b2baeb1c/attachment-0001.sig>
More information about the libvir-list
mailing list