Blame SOURCES/kvm-io-use-case-insensitive-check-for-Connection-Upgrade.patch

9bac43
From dad42ba543ed6ed3db06e33a08466c7a912b777e Mon Sep 17 00:00:00 2001
9bac43
From: "Daniel P. Berrange" <berrange@redhat.com>
9bac43
Date: Wed, 20 Dec 2017 17:56:45 +0100
9bac43
Subject: [PATCH 05/42] io: use case insensitive check for Connection & Upgrade
9bac43
 websock headers
9bac43
9bac43
RH-Author: Daniel P. Berrange <berrange@redhat.com>
9bac43
Message-id: <20171220175702.29663-4-berrange@redhat.com>
9bac43
Patchwork-id: 78456
9bac43
O-Subject: [RHV-7.5 qemu-kvm-rhev PATCH v2 03/20] io: use case insensitive check for Connection & Upgrade websock headers
9bac43
Bugzilla: 1518649
9bac43
RH-Acked-by: John Snow <jsnow@redhat.com>
9bac43
RH-Acked-by: Jeffrey Cody <jcody@redhat.com>
9bac43
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
9bac43
9bac43
When checking the value of the Connection and Upgrade HTTP headers
9bac43
the websock RFC (6455) requires the comparison to be case insensitive.
9bac43
The Connection value should be an exact match not a substring.
9bac43
9bac43
Reviewed-by: Eric Blake <eblake@redhat.com>
9bac43
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
9bac43
(cherry picked from commit 33badfd1e3735b877e41939100511c65572be6b9)
9bac43
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
9bac43
---
9bac43
 io/channel-websock.c | 4 ++--
9bac43
 1 file changed, 2 insertions(+), 2 deletions(-)
9bac43
9bac43
diff --git a/io/channel-websock.c b/io/channel-websock.c
9bac43
index 6ddcec1..2258557 100644
9bac43
--- a/io/channel-websock.c
9bac43
+++ b/io/channel-websock.c
9bac43
@@ -431,12 +431,12 @@ static void qio_channel_websock_handshake_process(QIOChannelWebsock *ioc,
9bac43
         goto bad_request;
9bac43
     }
9bac43
 
9bac43
-    if (!g_strrstr(connection, QIO_CHANNEL_WEBSOCK_CONNECTION_UPGRADE)) {
9bac43
+    if (strcasecmp(connection, QIO_CHANNEL_WEBSOCK_CONNECTION_UPGRADE) != 0) {
9bac43
         error_setg(errp, "No connection upgrade requested '%s'", connection);
9bac43
         goto bad_request;
9bac43
     }
9bac43
 
9bac43
-    if (!g_str_equal(upgrade, QIO_CHANNEL_WEBSOCK_UPGRADE_WEBSOCKET)) {
9bac43
+    if (strcasecmp(upgrade, QIO_CHANNEL_WEBSOCK_UPGRADE_WEBSOCKET) != 0) {
9bac43
         error_setg(errp, "Incorrect upgrade method '%s'", upgrade);
9bac43
         goto bad_request;
9bac43
     }
9bac43
-- 
9bac43
1.8.3.1
9bac43