Blame SOURCES/0041-server-don-t-assert-on-invalid-client-message.patch

e2c81d
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2be4b2
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>
2be4b2
Date: Wed, 25 Jun 2014 14:36:03 +0200
2be4b2
Subject: [PATCH] server: don't assert on invalid client message
2be4b2
2be4b2
Some users have been reaching this error:
2be4b2
snd_receive: ASSERT n failed
2be4b2
2be4b2
A misbehaving client could easily hit that condition by sending too big
2be4b2
messages. Instead of assert(), replace with a warning. When a message
2be4b2
too big to fit is received, it will simply disconnect the channel.
2be4b2
2be4b2
https://bugzilla.redhat.com/show_bug.cgi?id=962187
2be4b2
---
2be4b2
 server/snd_worker.c | 2 +-
2be4b2
 1 file changed, 1 insertion(+), 1 deletion(-)
2be4b2
2be4b2
diff --git a/server/snd_worker.c b/server/snd_worker.c
2be4b2
index ebddfcd..c451031 100644
2be4b2
--- a/server/snd_worker.c
2be4b2
+++ b/server/snd_worker.c
2be4b2
@@ -421,7 +421,7 @@ static void snd_receive(void* data)
2be4b2
     for (;;) {
2be4b2
         ssize_t n;
2be4b2
         n = channel->recive_data.end - channel->recive_data.now;
2be4b2
-        spice_assert(n);
2be4b2
+        spice_warn_if(n <= 0);
2be4b2
         n = reds_stream_read(channel->stream, channel->recive_data.now, n);
2be4b2
         if (n <= 0) {
2be4b2
             if (n == 0) {