[Spice-commits] spice/stats.h

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jan 17 17:11:26 UTC 2019

 spice/stats.h |    2 ++
 1 file changed, 2 insertions(+)

New commits:
commit f6e4cb65da7c9e6350c7e14ae1753757560aad51
Author: Frediano Ziglio <fziglio at redhat.com>
Date:   Fri Dec 21 13:59:44 2018 +0000

    stats: Avoid holes in SpiceStat structure
    The SpiceStat structure can be 20 or 24 bytes depending on alignment.
    Being a memory mapped structure potentially used with lockless access,
    it is not good to have it unaligned.
    The only tool that we know of that reads this memory mapped file
    (reds_stats) is able to detect if the structure is either 20 or 24
    bytes and act accordingly so changing this structure won't affect the
    behaviour (unless you have an old tool but as they are usually
    packaged together this is quite improbable).
    This will also help on Windows as in that system it is not possible
    for reds_stats to implement the same discovery trick implemented on
    Linux.  On Windows it is not possible to read the size of the file
    mapping (on Windows to implement shared memory you can use a file
    mapping not associated to a file).
    The structure will change layout only on 32-bit architectures which is
    not recommended nowadays (the 64-bit platforms that we support align
    64-bit integers to 64 bits).
    Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
    Acked-by: Christophe Fergeau <cfergeau at redhat.com>

diff --git a/spice/stats.h b/spice/stats.h
index 46bbfed..eed8a63 100644
--- a/spice/stats.h
+++ b/spice/stats.h
@@ -62,6 +62,8 @@ typedef struct SpiceStat {
     uint32_t generation;
     uint32_t num_of_nodes;
     uint32_t root_index;
+    /* to avoid holes in the structure on some platforms */
+    uint32_t padding;
     SpiceStatNode nodes[];
 } SpiceStat;

More information about the Spice-commits mailing list