[Spice-commits] server/reds.c

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Mar 20 10:44:05 UTC 2019


 server/reds.c |    8 ++++++++
 1 file changed, 8 insertions(+)

New commits:
commit c213bbe7cfe8ff3a023ee023df9256b5576bcd35
Author: Frediano Ziglio <fziglio at redhat.com>
Date:   Fri Mar 15 09:27:09 2019 +0000

    reds: Check we don't register a channel twice in reds_register_channel
    
    To avoid potential regressions, check it only if extra checks are
    enabled.
    This allows to check previous "Move channel registration to constructed
    vfunc" commit.
    
    Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
    Acked-by: Snir Sheriber <ssheribe at redhat.com>

diff --git a/server/reds.c b/server/reds.c
index bc043764..14e5728b 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -380,6 +380,14 @@ void stat_remove_counter(SpiceServer *reds, RedStatCounter *counter)
 void reds_register_channel(RedsState *reds, RedChannel *channel)
 {
     spice_assert(reds);
+
+    uint32_t this_type, this_id;
+    g_object_get(channel, "channel-type", &this_type, "id", &this_id, NULL);
+    if (spice_extra_checks) {
+        g_assert(reds_find_channel(reds, this_type, this_id) == NULL);
+    } else {
+        g_warn_if_fail(reds_find_channel(reds, this_type, this_id) == NULL);
+    }
     reds->channels = g_list_prepend(reds->channels, channel);
     // create new channel in the client if possible
     main_channel_registered_new_channel(reds->main_channel, channel);


More information about the Spice-commits mailing list