[libvirt] [PATCH] conf: Adjust invalid secrettype setting during parse

John Ferlan jferlan at redhat.com
Tue Jun 23 11:35:51 UTC 2015



On 06/15/2015 03:00 PM, John Ferlan wrote:
> Commit id '1feaccf0' attempted to handle an empty secrettype value; however,
> it made a mistake by processing the secretType as if it was the original
> secrettype string.  The 'secretType' is actually whether 'usage' or 'uuid'
> was used.
> 
> Thus adjust part of the change to make the same check for def->src->type !=
> VIR_STORAGE_TYPE_VOLUME before setting auth_secret_usage from the
> secrettype field.
> 
> Luckily the aforementioned commits misdeed would be overwritten by the
> call to virStorageTranslateDiskSourcePool
> 
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
> 
> Follow up to my recent change and response, see:
> 
> http://www.redhat.com/archives/libvir-list/2015-June/msg00666.html
> 
>  src/conf/domain_conf.c | 14 ++++----------
>  1 file changed, 4 insertions(+), 10 deletions(-)
> 
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index ca55981..c31edf5 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -6571,17 +6571,11 @@ virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlopt,
>                         xmlStrEqual(cur->name, BAD_CAST "auth")) {
>                  if (!(authdef = virStorageAuthDefParse(node->doc, cur)))
>                      goto error;
> -                /* Shared processing code with storage pools can leave
> -                 * this empty, but disk formatting uses it as does command
> -                 * creation - so use the secretType to attempt to fill it in.
> +                /* Disk volume types won't have the secrettype filled in until
> +                 * after virStorageTranslateDiskSourcePool is run
>                   */
> -                if (!authdef->secrettype) {
> -                    const char *secrettype =
> -                        virSecretUsageTypeToString(authdef->secretType);
> -                    if (VIR_STRDUP(authdef->secrettype, secrettype) < 0)
> -                        goto error;
> -                }
> -                if ((auth_secret_usage =
> +                if (def->src->type != VIR_STORAGE_TYPE_VOLUME &&
> +                    (auth_secret_usage =
>                       virSecretUsageTypeFromString(authdef->secrettype)) < 0) {
>                      virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
>                                     _("invalid secret type %s"),
> 

ping

Tks,

John




More information about the libvir-list mailing list