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

Re: [libvirt] [PATCH] qemu: Fix compilation error when enum variable size differs from 'int'



On 25.05.2015 17:18, Peter Krempa wrote:
> Since commit bcd9a564b631aa virDomainNumatuneGetMode returns the value
> via a pointer rather than in the return value. The change triggered
> problems with platforms where the compiler decides to use a data type of
> size different than integer at the point where we typecast it.
> 
> Work around the issue by using an intermediate variable of the correct
> type that gets casted back by the default typecasting rules.
> ---
>  src/qemu/qemu_driver.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index aa0acde..2b9f125 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -10566,14 +10566,16 @@ qemuDomainGetNumaParameters(virDomainPtr dom,
>          virMemoryParameterPtr param = &params[i];
> 
>          switch (i) {
> -        case 0: /* fill numa mode here */
> +        case 0: {  /* fill numa mode here */
> +            virDomainNumatuneMemMode tmp;
> +            virDomainNumatuneGetMode(def->numa, -1, &tmp);
> +
>              if (virTypedParameterAssign(param, VIR_DOMAIN_NUMA_MODE,
> -                                        VIR_TYPED_PARAM_INT, 0) < 0)
> +                                        VIR_TYPED_PARAM_INT, tmp) < 0)
>                  goto cleanup;
> 
> -            virDomainNumatuneGetMode(def->numa, -1,
> -                                     (virDomainNumatuneMemMode *) &param->value.i);
>              break;
> +        }
> 
>          case 1: /* fill numa nodeset here */
>              nodeset = virDomainNumatuneFormatNodeset(def->numa, NULL, -1);
> 

I guess we saw the same coverity report since you're fixing the code I'm
just looking at. But I think what is coverity trying to tell us is that
in all other places virDomainNumatuneGetMode() is checked for return
value, here it's not. Or did you really see problem  you're describing
in the commit message?

Michal


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