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

Re: [libvirt] VMware ESX: Don't warn if a known query parameter should be ignored



On Sat, Aug 08, 2009 at 11:57:25PM +0200, Matthias Bolte wrote:
> esxUtil_ParseQuery() warns if a known query parameter should be
> ignored due to the corresponding char/int pointer being NULL, instead
> of silently ignoring it.
> 
> The attached patch changes the if/else structure to fix this.
> 
> Matthias

> diff --git a/src/esx/esx_util.c b/src/esx/esx_util.c
> index 5e7c62a..38e9d17 100644
> --- a/src/esx/esx_util.c
> +++ b/src/esx/esx_util.c
> @@ -47,6 +47,7 @@
>  #endif
>  
>  
> +
>  char *
>  esxUtil_RequestUsername(virConnectAuthPtr auth, const char *defaultUsername,
>                          const char *server)
> @@ -160,7 +161,11 @@ esxUtil_ParseQuery(virConnectPtr conn, char **transport, char **vCenter,
>      for (i = 0; i < queryParamSet->n; i++) {
>          queryParam = &queryParamSet->p[i];
>  
> -        if (STRCASEEQ(queryParam->name, "transport") && transport != NULL) {
> +        if (STRCASEEQ(queryParam->name, "transport")) {
> +            if (transport == NULL) {
> +                continue;
> +            }
> +
>              *transport = strdup(queryParam->value);
>  
>              if (*transport == NULL) {
> @@ -174,15 +179,22 @@ esxUtil_ParseQuery(virConnectPtr conn, char **transport, char **vCenter,
>                            "'%s' (should be http|https)", *transport);
>                  goto failure;
>              }
> -        } else if (STRCASEEQ(queryParam->name, "vcenter") && vCenter != NULL) {
> +        } else if (STRCASEEQ(queryParam->name, "vcenter")) {
> +            if (vCenter == NULL) {
> +                continue;
> +            }
> +
>              *vCenter = strdup(queryParam->value);
>  
>              if (*vCenter == NULL) {
>                  virReportOOMError(conn);
>                  goto failure;
>              }
> -        } else if (STRCASEEQ(queryParam->name, "no_verify") &&
> -                   noVerify != NULL) {
> +        } else if (STRCASEEQ(queryParam->name, "no_verify")) {
> +            if (noVerify == NULL) {
> +                continue;
> +            }
> +
>              if (virStrToLong_i(queryParam->value, NULL, 10, noVerify) < 0 ||
>                  (*noVerify != 0 && *noVerify != 1)) {
>                  ESX_ERROR(conn, VIR_ERR_INVALID_ARG,

ACK

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|


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