[Spice-devel] [PATCH] Make sure g_object_new receive the correct data

Frediano Ziglio fziglio at redhat.com
Fri Jun 3 11:00:24 UTC 2016


g_object_new is a variadic function which take property values.
As compiler cannot check if these property values are correct
make sure they are using casts.
This actully fix a crash in reds.c for 32 bit architectures.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 server/main-dispatcher.c | 2 +-
 server/reds.c            | 4 ++--
 server/smartcard.c       | 4 ++--
 server/spicevmc.c        | 4 ++--
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/server/main-dispatcher.c b/server/main-dispatcher.c
index bc0de24..93de440 100644
--- a/server/main-dispatcher.c
+++ b/server/main-dispatcher.c
@@ -292,7 +292,7 @@ MainDispatcher* main_dispatcher_new(RedsState *reds, SpiceCoreInterfaceInternal
     MainDispatcher *self = g_object_new(TYPE_MAIN_DISPATCHER,
                                         "spice-server", reds,
                                         "core-interface", core,
-                                        "max-message-type", MAIN_DISPATCHER_NUM_MESSAGES,
+                                        "max-message-type", (guint) MAIN_DISPATCHER_NUM_MESSAGES,
                                         NULL);
     return self;
 }
diff --git a/server/reds.c b/server/reds.c
index 4fd1d35..5ec73b7 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -4379,8 +4379,8 @@ static RedCharDeviceVDIPort *red_char_device_vdi_port_new(RedsState *reds)
 {
     return g_object_new(RED_TYPE_CHAR_DEVICE_VDIPORT,
                         "spice-server", reds,
-                        "client-tokens-interval", REDS_TOKENS_TO_SEND,
-                        "self-tokens", REDS_NUM_INTERNAL_AGENT_MESSAGES,
+                        "client-tokens-interval", (guint64) REDS_TOKENS_TO_SEND,
+                        "self-tokens", (guint64) REDS_NUM_INTERNAL_AGENT_MESSAGES,
                         "opaque", reds,
                         NULL);
 }
diff --git a/server/smartcard.c b/server/smartcard.c
index 872aa1d..9b1b3d6 100644
--- a/server/smartcard.c
+++ b/server/smartcard.c
@@ -261,8 +261,8 @@ static RedCharDeviceSmartcard *smartcard_device_new(RedsState *reds, SpiceCharDe
     char_dev = g_object_new(RED_TYPE_CHAR_DEVICE_SMARTCARD,
                             "sin", sin,
                             "spice-server", reds,
-                            "client-tokens-interval", 0ULL,
-                            "self-tokens", ~0ULL,
+                            "client-tokens-interval", (guint64) 0ULL,
+                            "self-tokens", (guint64) ~0ULL,
                             NULL);
 
     g_object_set(char_dev, "opaque", char_dev, NULL);
diff --git a/server/spicevmc.c b/server/spicevmc.c
index b662d94..a863e39 100644
--- a/server/spicevmc.c
+++ b/server/spicevmc.c
@@ -580,8 +580,8 @@ red_char_device_spicevmc_new(SpiceCharDeviceInstance *sin,
     return g_object_new(RED_TYPE_CHAR_DEVICE_SPICEVMC,
                         "sin", sin,
                         "spice-server", reds,
-                        "client-tokens-interval", 0ULL,
-                        "self-tokens", ~0ULL,
+                        "client-tokens-interval", (guint64) 0ULL,
+                        "self-tokens", (guint64) ~0ULL,
                         "opaque", opaque,
                         NULL);
 }
-- 
2.7.4



More information about the Spice-devel mailing list