Paul Gofman : winhttp: Append mask to output frame even if buffer length is zero.

Alexandre Julliard julliard at winehq.org
Thu Jan 27 15:36:16 CST 2022


Module: wine
Branch: master
Commit: 67252dec2234d4ab380ef3b727b9503ae1f4d3d6
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=67252dec2234d4ab380ef3b727b9503ae1f4d3d6

Author: Paul Gofman <pgofman at codeweavers.com>
Date:   Thu Jan 27 02:03:05 2022 +0300

winhttp: Append mask to output frame even if buffer length is zero.

Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winhttp/request.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c
index cbfe2b21bd0..0a5362d3c16 100644
--- a/dlls/winhttp/request.c
+++ b/dlls/winhttp/request.c
@@ -3174,8 +3174,7 @@ static DWORD send_frame( struct socket *socket, enum socket_opcode opcode, USHOR
         offset += 8;
     }
 
-    buffer_size = len + offset;
-    if (len) buffer_size += 4;
+    buffer_size = len + offset + 4;
     assert( buffer_size - len < MAX_FRAME_BUFFER_SIZE );
     if (ovr && buffer_size > MAX_FRAME_BUFFER_SIZE) return WSAEWOULDBLOCK;
     if (buffer_size > socket->send_frame_buffer_size && socket->send_frame_buffer_size < MAX_FRAME_BUFFER_SIZE)
@@ -3196,13 +3195,11 @@ static DWORD send_frame( struct socket *socket, enum socket_opcode opcode, USHOR
 
     memcpy(ptr, hdr, offset);
     ptr += offset;
-    if (len)
-    {
-        mask = &hdr[offset];
-        RtlGenRandom( mask, 4 );
-        memcpy( ptr, mask, 4 );
-        ptr += 4;
-    }
+
+    mask = &hdr[offset];
+    RtlGenRandom( mask, 4 );
+    memcpy( ptr, mask, 4 );
+    ptr += 4;
 
     if (opcode == SOCKET_OPCODE_CLOSE) /* prepend status code */
     {




More information about the wine-cvs mailing list