[Spice-devel] [RFC] QXLDevSurfaceCreate: reorder fields to avoid holes on 64-bit arches.

Hans de Goede hdegoede at redhat.com
Tue May 22 07:30:33 PDT 2012


Hi,

Why not simply memset the struct to 0 before initializing its fields,
that should make valgrind happy and is a good idea in general (as it
puts 0 rather then random crap in fields which you forget to init).

Regards,

Hans


On 05/22/2012 04:27 PM, Alon Levy wrote:
> The hole remains uninitialized variable when allocating an instance of
> QXLDevSurfaceCreate on the stack and setting each field individually,
> producing an uninteresting valgrind warning. The reordering fixes this.
> It also requires bumping the version of the server.
> ---
> What's the suggested course here? just ignore this and either add memset in
> qemu or just pretend I don't see the uninitialized value in valgrind, or push
> this and what - raise the primary version number (and assume all users actually
> check for the exact primary and not for a larger then relation..) ?
>
>   server/spice.h |    2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/server/spice.h b/server/spice.h
> index 77aec92..ef2c6d3 100644
> --- a/server/spice.h
> +++ b/server/spice.h
> @@ -203,6 +203,7 @@ struct QXLDevMemSlot {
>   };
>
>   struct QXLDevSurfaceCreate {
> +    uint64_t mem;
>       uint32_t width;
>       uint32_t height;
>       int32_t stride;
> @@ -211,7 +212,6 @@ struct QXLDevSurfaceCreate {
>       uint32_t mouse_mode;
>       uint32_t flags;
>       uint32_t type;
> -    uint64_t mem;
>       uint32_t group_id;
>   };
>


More information about the Spice-devel mailing list