|
|
e2c81d |
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
e2c81d |
From: Pavel Grunt <pgrunt@redhat.com>
|
|
|
e2c81d |
Date: Fri, 13 Nov 2015 09:14:29 +0100
|
|
|
e2c81d |
Subject: [PATCH] reds: Do not abort due to wrong header
|
|
|
e2c81d |
MIME-Version: 1.0
|
|
|
e2c81d |
Content-Type: text/plain; charset=UTF-8
|
|
|
e2c81d |
Content-Transfer-Encoding: 8bit
|
|
|
e2c81d |
|
|
|
e2c81d |
Just prevent the buggy client from connecting.
|
|
|
e2c81d |
|
|
|
e2c81d |
#0 0x00007fffe83b2a98 in raise () at /lib64/libc.so.6
|
|
|
e2c81d |
#1 0x00007fffe83b469a in abort () at /lib64/libc.so.6
|
|
|
e2c81d |
#2 0x00007ffff7b1533d in spice_logv (log_domain=0x7ffff7b87226 "Spice", log_level=SPICE_LOG_LEVEL_ERROR, strloc=0x7ffff7b92aba "reds.c:1373", function=0x7ffff7b94f40 <__FUNCTION__.31775> "reds_send_link_ack", format=0x7ffff7b871fe "assertion `%s' failed", args=args@entry=0x7fffffffcb68) at log.c:109
|
|
|
e2c81d |
#3 0x00007ffff7b15468 in spice_log (log_domain=log_domain@entry=0x7ffff7b87226 "Spice", log_level=log_level@entry=SPICE_LOG_LEVEL_ERROR, strloc=strloc@entry=0x7ffff7b92aba "reds.c:1373", function=function@entry=0x7ffff7b94f40 <__FUNCTION__.31775> "reds_send_link_ack", format=format@entry=0x7ffff7b871fe "assertion `%s' failed") at log.c:123
|
|
|
e2c81d |
#4 0x00007ffff7aee335 in reds_handle_read_link_done (link=0x555556b27c70)
|
|
|
e2c81d |
at reds.c:1373
|
|
|
e2c81d |
#5 0x00007ffff7aee335 in reds_handle_read_link_done (opaque=0x555556b27c70)
|
|
|
e2c81d |
at reds.c:2139
|
|
|
e2c81d |
#6 0x000055555588acc6 in qemu_iohandler_poll ()
|
|
|
e2c81d |
#7 0x000055555588a8e1 in main_loop_wait ()
|
|
|
e2c81d |
#8 0x0000555555614064 in main ()
|
|
|
e2c81d |
|
|
|
e2c81d |
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1281442
|
|
|
e2c81d |
|
|
|
e2c81d |
Acked-by: Fabiano FidĂȘncio <fidencio@redhat.com>
|
|
|
e2c81d |
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
|
e2c81d |
---
|
|
|
e2c81d |
server/reds.c | 5 ++++-
|
|
|
e2c81d |
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
e2c81d |
|
|
|
e2c81d |
diff --git a/server/reds.c b/server/reds.c
|
|
|
e2c81d |
index e96f28d..b45c44f 100644
|
|
|
e2c81d |
--- a/server/reds.c
|
|
|
e2c81d |
+++ b/server/reds.c
|
|
|
e2c81d |
@@ -1482,7 +1482,10 @@ static int reds_send_link_ack(RedLinkInfo *link)
|
|
|
e2c81d |
channel = reds_find_channel(link->link_mess->channel_type,
|
|
|
e2c81d |
link->link_mess->channel_id);
|
|
|
e2c81d |
if (!channel) {
|
|
|
e2c81d |
- spice_assert(link->link_mess->channel_type == SPICE_CHANNEL_MAIN);
|
|
|
e2c81d |
+ if (link->link_mess->channel_type != SPICE_CHANNEL_MAIN) {
|
|
|
e2c81d |
+ spice_warning("Received wrong header: channel_type != SPICE_CHANNEL_MAIN");
|
|
|
e2c81d |
+ return FALSE;
|
|
|
e2c81d |
+ }
|
|
|
e2c81d |
spice_assert(reds->main_channel);
|
|
|
e2c81d |
channel = &reds->main_channel->base;
|
|
|
e2c81d |
}
|