[Spice-devel] [PATCH spice-server] display-channel: Initialise variable as soon as possible

Frediano Ziglio fziglio at redhat.com
Thu Jun 27 09:05:26 UTC 2019


Avoids to have not initialised variables before constructed is called.
This avoid potentially memory errors while setting properties.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 server/display-channel.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/server/display-channel.c b/server/display-channel.c
index 7ddd44c14..f99fd8faf 100644
--- a/server/display-channel.c
+++ b/server/display-channel.c
@@ -2277,12 +2277,17 @@ display_channel_init(DisplayChannel *self)
     self->priv = g_new0(DisplayChannelPrivate, 1);
     self->priv->image_compression = SPICE_IMAGE_COMPRESSION_AUTO_GLZ;
     self->priv->pub = self;
+    self->priv->renderer = RED_RENDERER_INVALID;
+    self->priv->stream_video = SPICE_STREAM_VIDEO_OFF;
 
     image_encoder_shared_init(&self->priv->encoder_shared_data);
 
     ring_init(&self->priv->current_list);
     drawables_init(self);
     self->priv->image_surfaces.ops = &image_surfaces_ops;
+
+    image_cache_init(&self->priv->image_cache);
+    display_channel_init_video_streams(self);
 }
 
 static void
@@ -2295,8 +2300,6 @@ display_channel_constructed(GObject *object)
 
     spice_assert(self->priv->video_codecs);
 
-    self->priv->renderer = RED_RENDERER_INVALID;
-
     stat_init(&self->priv->add_stat, "add", CLOCK_THREAD_CPUTIME_ID);
     stat_init(&self->priv->exclude_stat, "exclude", CLOCK_THREAD_CPUTIME_ID);
     stat_init(&self->priv->__exclude_stat, "__exclude", CLOCK_THREAD_CPUTIME_ID);
@@ -2308,9 +2311,6 @@ display_channel_constructed(GObject *object)
                       "add_to_cache", TRUE);
     stat_init_counter(&self->priv->non_cache_counter, reds, stat,
                       "non_cache", TRUE);
-    image_cache_init(&self->priv->image_cache);
-    self->priv->stream_video = SPICE_STREAM_VIDEO_OFF;
-    display_channel_init_video_streams(self);
 
     red_channel_set_cap(channel, SPICE_DISPLAY_CAP_MONITORS_CONFIG);
     red_channel_set_cap(channel, SPICE_DISPLAY_CAP_PREF_COMPRESSION);
-- 
2.20.1



More information about the Spice-devel mailing list