Blame SOURCES/0005-websocket-Fix-possible-integer-overflow.patch

b6c02a
From b8f4d7d2c7a3d08a82f4bc7588cdff15cee54292 Mon Sep 17 00:00:00 2001
b6c02a
From: Frediano Ziglio <freddy77@gmail.com>
b6c02a
Date: Tue, 16 Jun 2020 11:49:19 +0100
b6c02a
Subject: [PATCH] websocket: Fix possible integer overflow
b6c02a
b6c02a
The shift of a uint_8 number by a number > 32 causes an overflow.
b6c02a
b6c02a
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
b6c02a
Acked-by: Uri Lublin <ulublin@redhat.com>
b6c02a
---
b6c02a
 server/websocket.c | 5 +++--
b6c02a
 1 file changed, 3 insertions(+), 2 deletions(-)
b6c02a
b6c02a
diff --git a/server/websocket.c b/server/websocket.c
b6c02a
index f5df63f8..82b20b49 100644
b6c02a
--- a/server/websocket.c
b6c02a
+++ b/server/websocket.c
b6c02a
@@ -165,8 +165,9 @@ static uint64_t extract_length(const uint8_t *buf, int *used)
b6c02a
     case LENGTH_64BIT:
b6c02a
         *used += 8;
b6c02a
         outlen = 0;
b6c02a
-        for (i = 56; i >= 0; i -= 8) {
b6c02a
-            outlen |= (*buf++) << i;
b6c02a
+        for (i = 0; i < 8; ++i) {
b6c02a
+            outlen <<= 8;
b6c02a
+            outlen |= *buf++;
b6c02a
         }
b6c02a
         break;
b6c02a
 
b6c02a
-- 
b6c02a
2.26.2
b6c02a