On 23.09.2015 22:54, John Ferlan wrote: > https://bugzilla.redhat.com/show_bug.cgi?id=1256999 > > When creating a copy of the 'authdef', need to take into account the > slight variation between <disk> and <pool> before blindly copying > the 'authType' field. This ensures virStorageAuthDefFormat will > properly format the <auth> XML for a <disk>. > > Signed-off-by: John Ferlan <jferlan@xxxxxxxxxx> > --- > src/util/virstoragefile.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c > index 2aa1d90..0b72cb3 100644 > --- a/src/util/virstoragefile.c > +++ b/src/util/virstoragefile.c > @@ -1522,7 +1522,12 @@ virStorageAuthDefCopy(const virStorageAuthDef *src) > /* Not present for storage pool, but used for disk source */ > if (VIR_STRDUP(ret->secrettype, src->secrettype) < 0) > goto error; > - ret->authType = src->authType; > + /* A <disk> uses secrettype, while a <pool> uses authType, so > + * if we have a secrettype, then don't copy authType; otherwise, > + * we will format the authType in <disk> > + */ > + if (!ret->secrettype) > + ret->authType = src->authType; > ret->secretType = src->secretType; This seems like we have a bug somewhere if authType and secretType are both set at the same time. Because the way I understand the code is that only one from the pair can be non-null at the time. If so, I think we should fix the bug and drop this if() here. Moreover, I'd expect a copy function to create the exact copy of the original image instead of masking a bug somewhere. BTW isn't authType set to VIR_STORAGE_AUTH_TYPE_NONE by default? And secretType to VIR_STORAGE_SECRET_TYPE_NONE? Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list